home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / opengl / xorg-x11 / include / glxproto.h < prev    next >
C/C++ Source or Header  |  2006-04-12  |  71KB  |  2,385 lines

  1. #ifndef _GLX_glxproto_h_
  2. #define _GLX_glxproto_h_
  3.  
  4. /* $XFree86: xc/include/GL/glxproto.h,v 1.6 2003/09/28 20:14:58 alanh Exp $ */
  5. /*
  6. ** License Applicability. Except to the extent portions of this file are
  7. ** made subject to an alternative license as permitted in the SGI Free
  8. ** Software License B, Version 1.1 (the "License"), the contents of this
  9. ** file are subject only to the provisions of the License. You may not use
  10. ** this file except in compliance with the License. You may obtain a copy
  11. ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
  12. ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
  13. **
  14. ** http://oss.sgi.com/projects/FreeB
  15. **
  16. ** Note that, as provided in the License, the Software is distributed on an
  17. ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
  18. ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
  19. ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
  20. ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
  21. **
  22. ** Original Code. The Original Code is: OpenGL Sample Implementation,
  23. ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
  24. ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
  25. ** Copyright in any portions created by third parties is as indicated
  26. ** elsewhere herein. All Rights Reserved.
  27. **
  28. ** Additional Notice Provisions: The application programming interfaces
  29. ** established by SGI in conjunction with the Original Code are The
  30. ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
  31. ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
  32. ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
  33. ** Window System(R) (Version 1.3), released October 19, 1998. This software
  34. ** was created using the OpenGL(R) version 1.2.1 Sample Implementation
  35. ** published by SGI, but has not been independently verified as being
  36. ** compliant with the OpenGL(R) version 1.2.1 Specification.
  37. */
  38.  
  39. #include <GL/glxmd.h>
  40.  
  41. /*****************************************************************************/
  42.  
  43. /*
  44. ** Errrors.
  45. */
  46. #define GLXBadContext        0
  47. #define GLXBadContextState    1
  48. #define GLXBadDrawable        2
  49. #define GLXBadPixmap        3
  50. #define GLXBadContextTag    4
  51. #define GLXBadCurrentWindow    5
  52. #define GLXBadRenderRequest    6
  53. #define GLXBadLargeRequest    7
  54. #define GLXUnsupportedPrivateRequest    8
  55. #define GLXBadFBConfig        9
  56. #define GLXBadPbuffer        10
  57. #define GLXBadCurrentDrawable    11
  58. #define GLXBadWindow        12
  59.  
  60. #define __GLX_NUMBER_ERRORS 12
  61.  
  62. /*
  63. ** Events.
  64. ** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX
  65. **  event - this helps initialization if the server supports the pbuffer
  66. **  extension and the client doesn't.
  67. */
  68. #define GLX_PbufferClobber    0
  69.  
  70. #define __GLX_NUMBER_EVENTS 17
  71.  
  72. #define GLX_EXTENSION_NAME    "GLX"
  73. #define GLX_EXTENSION_ALIAS    "SGI-GLX"
  74.  
  75. #define __GLX_MAX_CONTEXT_PROPS 3
  76.  
  77. #ifndef GLX_VENDOR
  78. #define GLX_VENDOR        0x1
  79. #endif
  80. #ifndef GLX_VERSION
  81. #define GLX_VERSION        0x2
  82. #endif
  83. #ifndef GLX_EXTENSIONS
  84. #define GLX_EXTENSIONS        0x3
  85. #endif
  86.  
  87. /*****************************************************************************/
  88.  
  89. /*
  90. ** For the structure definitions in this file, we must redefine these types in
  91. ** terms of Xmd.h types, which may include bitfields.  All of these are
  92. ** undef'ed at the end of this file, restoring the definitions in glx.h.
  93. */
  94. #define GLXContextID CARD32
  95. #define GLXPixmap CARD32
  96. #define GLXDrawable CARD32
  97. #define GLXPbuffer CARD32
  98. #define GLXWindow CARD32
  99. #define GLXFBConfigID CARD32
  100. #define GLXFBConfigIDSGIX CARD32
  101. #define GLXPbufferSGIX CARD32
  102.  
  103. /*
  104. ** ContextTag is not exposed to the API.
  105. */
  106. typedef CARD32 GLXContextTag;
  107.  
  108. /*****************************************************************************/
  109.  
  110. /*
  111. ** Sizes of basic wire types.
  112. */
  113. #define __GLX_SIZE_INT8        1
  114. #define __GLX_SIZE_INT16    2
  115. #define __GLX_SIZE_INT32    4
  116. #define __GLX_SIZE_CARD8    1
  117. #define __GLX_SIZE_CARD16    2
  118. #define __GLX_SIZE_CARD32    4
  119. #define __GLX_SIZE_FLOAT32    4
  120. #define __GLX_SIZE_FLOAT64    8
  121.  
  122. /*****************************************************************************/
  123.  
  124. /* Requests */
  125.  
  126. /*
  127. ** Render command request.  A bunch of rendering commands are packed into
  128. ** a single X extension request.
  129. */
  130. typedef struct GLXRender {
  131.     CARD8    reqType;
  132.     CARD8    glxCode;
  133.     CARD16    length B16;
  134.     GLXContextTag contextTag B32;
  135. } xGLXRenderReq;
  136. #define sz_xGLXRenderReq 8
  137.  
  138. /*
  139. ** The maximum size that a GLXRender command can be.  The value must fit
  140. ** in 16 bits and should be a multiple of 4.
  141. */
  142. #define __GLX_MAX_RENDER_CMD_SIZE    64000
  143.  
  144. /*
  145. ** Large render command request.  A single large rendering command
  146. ** is output in multiple X extension requests.    The first packet
  147. ** contains an opcode dependent header (see below) that describes
  148. ** the data that follows.
  149. */
  150. typedef struct GLXRenderLarge {
  151.     CARD8    reqType;
  152.     CARD8    glxCode;
  153.     CARD16    length B16;
  154.     GLXContextTag contextTag B32;
  155.     CARD16    requestNumber B16;
  156.     CARD16    requestTotal B16;
  157.     CARD32    dataBytes B32;
  158. } xGLXRenderLargeReq;
  159. #define sz_xGLXRenderLargeReq 16
  160.  
  161. /*
  162. ** GLX single request.    Commands that go over as single GLX protocol
  163. ** requests use this structure.  The glxCode will be one of the X_GLsop
  164. ** opcodes.
  165. */
  166. typedef struct GLXSingle {
  167.     CARD8    reqType;
  168.     CARD8    glxCode;
  169.     CARD16    length B16;
  170.     GLXContextTag contextTag B32;
  171. } xGLXSingleReq;
  172. #define sz_xGLXSingleReq 8
  173.  
  174. /*
  175. ** glXQueryVersion request
  176. */
  177. typedef struct GLXQueryVersion {
  178.     CARD8    reqType;
  179.     CARD8    glxCode;
  180.     CARD16    length B16;
  181.     CARD32    majorVersion B32;
  182.     CARD32    minorVersion B32;
  183. } xGLXQueryVersionReq;
  184. #define sz_xGLXQueryVersionReq 12
  185.  
  186. /*
  187. ** glXIsDirect request
  188. */
  189. typedef struct GLXIsDirect {
  190.     CARD8    reqType;
  191.     CARD8    glxCode;
  192.     CARD16    length B16;
  193.     GLXContextID context B32;
  194. } xGLXIsDirectReq;
  195. #define sz_xGLXIsDirectReq 8
  196.  
  197. /*
  198. ** glXCreateContext request
  199. */
  200. typedef struct GLXCreateContext {
  201.     CARD8    reqType;
  202.     CARD8    glxCode;
  203.     CARD16    length B16;
  204.     GLXContextID context B32;
  205.     CARD32    visual B32;
  206.     CARD32    screen B32;
  207.     GLXContextID shareList B32;
  208.     BOOL    isDirect;
  209.     CARD8    reserved1;
  210.     CARD16    reserved2 B16;
  211. } xGLXCreateContextReq;
  212. #define sz_xGLXCreateContextReq 24
  213.  
  214. /*
  215. ** glXDestroyContext request
  216. */
  217. typedef struct GLXDestroyContext {
  218.     CARD8    reqType;
  219.     CARD8    glxCode;
  220.     CARD16    length B16;
  221.     GLXContextID context B32;
  222. } xGLXDestroyContextReq;
  223. #define sz_xGLXDestroyContextReq 8
  224.  
  225. /*
  226. ** glXMakeCurrent request
  227. */
  228. typedef struct GLXMakeCurrent {
  229.     CARD8    reqType;
  230.     CARD8    glxCode;
  231.     CARD16    length B16;
  232.     GLXDrawable drawable B32;
  233.     GLXContextID context B32;
  234.     GLXContextTag oldContextTag B32;
  235. } xGLXMakeCurrentReq;
  236. #define sz_xGLXMakeCurrentReq 16
  237.  
  238. /*
  239. ** glXWaitGL request
  240. */
  241. typedef struct GLXWaitGL {
  242.     CARD8    reqType;
  243.     CARD8    glxCode;
  244.     CARD16    length B16;
  245.     GLXContextTag contextTag B32;
  246. } xGLXWaitGLReq;
  247. #define sz_xGLXWaitGLReq 8
  248.  
  249. /*
  250. ** glXWaitX request
  251. */
  252. typedef struct GLXWaitX {
  253.     CARD8    reqType;
  254.     CARD8    glxCode;
  255.     CARD16    length B16;
  256.     GLXContextTag contextTag B32;
  257. } xGLXWaitXReq;
  258. #define sz_xGLXWaitXReq 8
  259.  
  260. /*
  261. ** glXCopyContext request
  262. */
  263. typedef struct GLXCopyContext {
  264.     CARD8    reqType;
  265.     CARD8    glxCode;
  266.     CARD16    length B16;
  267.     GLXContextID source B32;
  268.     GLXContextID dest B32;
  269.     CARD32    mask B32;
  270.     GLXContextTag contextTag B32;
  271. } xGLXCopyContextReq;
  272. #define sz_xGLXCopyContextReq 20
  273.  
  274. /*
  275. ** glXSwapBuffers request
  276. */
  277. typedef struct GLXSwapBuffers {
  278.     CARD8    reqType;
  279.     CARD8    glxCode;
  280.     CARD16    length B16;
  281.     GLXContextTag contextTag B32;
  282.     GLXDrawable drawable B32;
  283. } xGLXSwapBuffersReq;
  284. #define sz_xGLXSwapBuffersReq 12
  285.  
  286. /*
  287. ** glXUseXFont request
  288. */
  289. typedef struct GLXUseXFont {
  290.     CARD8    reqType;
  291.     CARD8    glxCode;
  292.     CARD16    length B16;
  293.     GLXContextTag contextTag B32;
  294.     CARD32    font B32;
  295.     CARD32    first B32;
  296.     CARD32    count B32;
  297.     CARD32    listBase B32;
  298. } xGLXUseXFontReq;
  299. #define sz_xGLXUseXFontReq 24
  300.  
  301. /*
  302. ** glXCreateGLXPixmap request
  303. */
  304. typedef struct GLXCreateGLXPixmap {
  305.     CARD8    reqType;
  306.     CARD8    glxCode;
  307.     CARD16    length B16;
  308.     CARD32    screen B32;
  309.     CARD32    visual B32;
  310.     CARD32    pixmap B32;
  311.     GLXPixmap    glxpixmap B32;
  312. } xGLXCreateGLXPixmapReq;
  313. #define sz_xGLXCreateGLXPixmapReq 20
  314.  
  315. /*
  316. ** glXDestroyGLXPixmap request
  317. */
  318. typedef struct GLXDestroyGLXPixmap {
  319.     CARD8    reqType;
  320.     CARD8    glxCode;
  321.     CARD16    length B16;
  322.     GLXPixmap    glxpixmap B32;
  323. } xGLXDestroyGLXPixmapReq;
  324. #define sz_xGLXDestroyGLXPixmapReq 8
  325.  
  326. /*
  327. ** glXGetVisualConfigs request
  328. */
  329. typedef struct GLXGetVisualConfigs {
  330.     CARD8    reqType;
  331.     CARD8    glxCode;
  332.     CARD16    length B16;
  333.     CARD32    screen B32;
  334. } xGLXGetVisualConfigsReq;
  335. #define sz_xGLXGetVisualConfigsReq 8
  336.  
  337. /*
  338. ** glXVendorPrivate request.
  339. */
  340. typedef struct GLXVendorPrivate {
  341.     CARD8    reqType;
  342.     CARD8    glxCode;
  343.     CARD16    length B16;
  344.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  345.     GLXContextTag contextTag B32;
  346.     /*
  347.     ** More data may follow; this is just the header.
  348.     */
  349. } xGLXVendorPrivateReq;
  350. #define sz_xGLXVendorPrivateReq 12
  351.  
  352. /*
  353. ** glXVendorPrivateWithReply request
  354. */
  355. typedef struct GLXVendorPrivateWithReply {
  356.     CARD8    reqType;
  357.     CARD8    glxCode;
  358.     CARD16    length B16;
  359.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  360.     GLXContextTag contextTag B32;
  361.     /*
  362.     ** More data may follow; this is just the header.
  363.     */
  364. } xGLXVendorPrivateWithReplyReq;
  365. #define sz_xGLXVendorPrivateWithReplyReq 12
  366.  
  367. /*
  368. ** glXQueryExtensionsString request
  369. */
  370. typedef struct GLXQueryExtensionsString {
  371.     CARD8    reqType;
  372.     CARD8    glxCode;
  373.     CARD16    length B16;
  374.     CARD32    screen B32;
  375. } xGLXQueryExtensionsStringReq;
  376. #define sz_xGLXQueryExtensionsStringReq 8
  377.  
  378. /*
  379. ** glXQueryServerString request
  380. */
  381. typedef struct GLXQueryServerString {
  382.     CARD8    reqType;
  383.     CARD8    glxCode;
  384.     CARD16    length B16;
  385.     CARD32    screen    B32;
  386.     CARD32    name B32;
  387. } xGLXQueryServerStringReq;
  388. #define sz_xGLXQueryServerStringReq 12
  389.  
  390. /*
  391. ** glXClientInfo request
  392. */
  393. typedef struct GLXClientInfo {
  394.     CARD8    reqType;
  395.     CARD8    glxCode;
  396.     CARD16    length B16;
  397.     CARD32    major B32;
  398.     CARD32    minor B32;
  399.     CARD32    numbytes B32;
  400. } xGLXClientInfoReq;
  401. #define sz_xGLXClientInfoReq 16
  402.  
  403. /*** Start of GLX 1.3 requests */
  404.  
  405. /*
  406. ** glXGetFBConfigs request
  407. */
  408. typedef struct GLXGetFBConfigs {
  409.     CARD8    reqType;
  410.     CARD8    glxCode;
  411.     CARD16    length B16;
  412.     CARD32    screen B32;
  413. } xGLXGetFBConfigsReq;
  414. #define sz_xGLXGetFBConfigsReq 8
  415.  
  416. /*
  417. ** glXCreatePixmap request
  418. */
  419. typedef struct GLXCreatePixmap {
  420.     CARD8    reqType;
  421.     CARD8    glxCode;
  422.     CARD16    length B16;
  423.     CARD32    screen B32;
  424.     GLXFBConfigID fbconfig B32;
  425.     CARD32    pixmap B32;
  426.     GLXPixmap    glxpixmap B32;
  427.     CARD32    numAttribs B32;
  428.     /* followed by attribute list */
  429. } xGLXCreatePixmapReq;
  430. #define sz_xGLXCreatePixmapReq 24
  431.  
  432. /*
  433. ** glXDestroyPixmap request
  434. */
  435. typedef struct GLXDestroyPixmap {
  436.     CARD8    reqType;
  437.     CARD8    glxCode;
  438.     CARD16    length B16;
  439.     GLXPixmap    glxpixmap B32;
  440. } xGLXDestroyPixmapReq;
  441. #define sz_xGLXDestroyPixmapReq 8
  442.  
  443. /*
  444. ** glXCreateNewContext request
  445. */
  446. typedef struct GLXCreateNewContext {
  447.     CARD8    reqType;
  448.     CARD8    glxCode;
  449.     CARD16    length B16;
  450.     GLXContextID context B32;
  451.     GLXFBConfigID fbconfig B32;
  452.     CARD32    screen B32;
  453.     CARD32    renderType;
  454.     GLXContextID shareList B32;
  455.     BOOL    isDirect;
  456.     CARD8    reserved1;
  457.     CARD16    reserved2 B16;
  458. } xGLXCreateNewContextReq;
  459. #define sz_xGLXCreateNewContextReq 28
  460.  
  461. /*
  462. ** glXQueryContext request
  463. */
  464. typedef struct GLXQueryContext {
  465.     CARD8    reqType;
  466.     CARD8    glxCode;
  467.     CARD16    length B16;
  468.     GLXContextID context B32;
  469. } xGLXQueryContextReq;
  470. #define sz_xGLXQueryContextReq 8
  471.  
  472. /*
  473. ** glXMakeContextCurrent request
  474. */
  475. typedef struct GLXMakeContextCurrent {
  476.     CARD8    reqType;
  477.     CARD8    glxCode;
  478.     CARD16    length B16;
  479.     GLXContextTag oldContextTag B32;
  480.     GLXDrawable drawable B32;
  481.     GLXDrawable readdrawable B32;
  482.     GLXContextID context B32;
  483. } xGLXMakeContextCurrentReq;
  484. #define sz_xGLXMakeContextCurrentReq 20
  485.  
  486. /*
  487. ** glXCreatePbuffer request
  488. */
  489. typedef struct GLXCreatePbuffer {
  490.     CARD8    reqType;
  491.     CARD8    glxCode;
  492.     CARD16    length B16;
  493.     CARD32    screen B32;
  494.     GLXFBConfigID fbconfig B32;
  495.     GLXPbuffer    pbuffer B32;
  496.     CARD32    numAttribs B32;
  497.     /* followed by attribute list */
  498. } xGLXCreatePbufferReq;
  499. #define sz_xGLXCreatePbufferReq 20
  500.  
  501. /*
  502. ** glXDestroyPbuffer request
  503. */
  504. typedef struct GLXDestroyPbuffer {
  505.     CARD8    reqType;
  506.     CARD8    glxCode;
  507.     CARD16    length B16;
  508.     GLXPbuffer    pbuffer B32;
  509. } xGLXDestroyPbufferReq;
  510. #define sz_xGLXDestroyPbufferReq 8
  511.  
  512. /*
  513. ** glXGetDrawableAttributes request
  514. */
  515. typedef struct GLXGetDrawableAttributes {
  516.     CARD8    reqType;
  517.     CARD8    glxCode;
  518.     CARD16    length B16;
  519.     GLXDrawable drawable B32;
  520. } xGLXGetDrawableAttributesReq;
  521. #define sz_xGLXGetDrawableAttributesReq 8
  522.  
  523. /*
  524. ** glXChangeDrawableAttributes request
  525. */
  526. typedef struct GLXChangeDrawableAttributes {
  527.     CARD8    reqType;
  528.     CARD8    glxCode;
  529.     CARD16    length B16;
  530.     GLXDrawable drawable B32;
  531.     CARD32    numAttribs B32;
  532.     /* followed by attribute list */
  533. } xGLXChangeDrawableAttributesReq;
  534. #define sz_xGLXChangeDrawableAttributesReq 12
  535.  
  536. /*
  537. ** glXCreateWindow request
  538. */
  539. typedef struct GLXCreateWindow {
  540.     CARD8    reqType;
  541.     CARD8    glxCode;
  542.     CARD16    length B16;
  543.     CARD32    screen B32;
  544.     GLXFBConfigID fbconfig B32;
  545.     CARD32    window B32;
  546.     GLXWindow    glxwindow B32;
  547.     CARD32    numAttribs B32;
  548.     /* followed by attribute list */
  549. } xGLXCreateWindowReq;
  550. #define sz_xGLXCreateWindowReq 24
  551.  
  552. /*
  553. ** glXDestroyWindow request
  554. */
  555. typedef struct GLXDestroyWindow {
  556.     CARD8    reqType;
  557.     CARD8    glxCode;
  558.     CARD16    length B16;
  559.     GLXWindow    glxwindow B32;
  560. } xGLXDestroyWindowReq;
  561. #define sz_xGLXDestroyWindowReq 8
  562.  
  563. /* Replies */
  564.  
  565. typedef struct {
  566.     BYTE    type;            /* X_Reply */
  567.     CARD8    unused;            /* not used */
  568.     CARD16    sequenceNumber B16;
  569.     CARD32    length B32;
  570.     CARD32    error B32;
  571.     CARD32    pad2 B32;
  572.     CARD32    pad3 B32;
  573.     CARD32    pad4 B32;
  574.     CARD32    pad5 B32;
  575.     CARD32    pad6 B32;
  576. } xGLXGetErrorReply;
  577. #define sz_xGLXGetErrorReply 32
  578.  
  579. typedef struct {
  580.     BYTE    type;            /* X_Reply */
  581.     CARD8    unused;            /* not used */
  582.     CARD16    sequenceNumber B16;
  583.     CARD32    length B32;
  584.     GLXContextTag contextTag B32;
  585.     CARD32    pad2 B32;
  586.     CARD32    pad3 B32;
  587.     CARD32    pad4 B32;
  588.     CARD32    pad5 B32;
  589.     CARD32    pad6 B32;
  590. } xGLXMakeCurrentReply;
  591. #define sz_xGLXMakeCurrentReply 32
  592.  
  593. typedef struct {
  594.     BYTE    type;            /* X_Reply */
  595.     CARD8    unused;            /* not used */
  596.     CARD16    sequenceNumber B16;
  597.     CARD32    length B32;
  598.     CARD32    pad1 B32;
  599.     CARD32    pad2 B32;
  600.     CARD32    pad3 B32;
  601.     CARD32    pad4 B32;
  602.     CARD32    pad5 B32;
  603.     CARD32    pad6 B32;
  604. } xGLXReadPixelsReply;
  605. #define sz_xGLXReadPixelsReply 32
  606.  
  607. typedef struct {
  608.     BYTE    type;            /* X_Reply */
  609.     CARD8    unused;            /* not used */
  610.     CARD16    sequenceNumber B16;
  611.     CARD32    length B32;
  612.     CARD32    pad1 B32;
  613.     CARD32    pad2 B32;
  614.     CARD32    width B32;
  615.     CARD32    height B32;
  616.     CARD32    depth B32;
  617.     CARD32    pad6 B32;
  618. } xGLXGetTexImageReply;
  619. #define sz_xGLXGetTexImageReply 32
  620.  
  621. typedef struct {
  622.     BYTE    type;            /* X_Reply */
  623.     CARD8    unused;            /* not used */
  624.     CARD16    sequenceNumber B16;
  625.     CARD32    length B32;
  626.     CARD32    pad1 B32;
  627.     CARD32    pad2 B32;
  628.     CARD32    width B32;
  629.     CARD32    height B32;
  630.     CARD32    pad5 B32;
  631.     CARD32    pad6 B32;
  632. } xGLXGetSeparableFilterReply;
  633. #define sz_xGLXGetSeparableFilterReply 32
  634.  
  635. typedef struct {
  636.     BYTE    type;            /* X_Reply */
  637.     CARD8    unused;            /* not used */
  638.     CARD16    sequenceNumber B16;
  639.     CARD32    length B32;
  640.     CARD32    pad1 B32;
  641.     CARD32    pad2 B32;
  642.     CARD32    width B32;
  643.     CARD32    height B32;
  644.     CARD32    pad5 B32;
  645.     CARD32    pad6 B32;
  646. } xGLXGetConvolutionFilterReply;
  647. #define sz_xGLXGetConvolutionFilterReply 32
  648.  
  649. typedef struct {
  650.     BYTE    type;            /* X_Reply */
  651.     CARD8    unused;            /* not used */
  652.     CARD16    sequenceNumber B16;
  653.     CARD32    length B32;
  654.     CARD32    pad1 B32;
  655.     CARD32    pad2 B32;
  656.     CARD32    width B32;
  657.     CARD32    pad4 B32;
  658.     CARD32    pad5 B32;
  659.     CARD32    pad6 B32;
  660. } xGLXGetHistogramReply;
  661. #define sz_xGLXGetHistogramReply 32
  662.  
  663. typedef struct {
  664.     BYTE    type;            /* X_Reply */
  665.     CARD8    unused;            /* not used */
  666.     CARD16    sequenceNumber B16;
  667.     CARD32    length B32;
  668.     CARD32    pad1 B32;
  669.     CARD32    pad2 B32;
  670.     CARD32    pad3 B32;
  671.     CARD32    pad4 B32;
  672.     CARD32    pad5 B32;
  673.     CARD32    pad6 B32;
  674. } xGLXGetMinmaxReply;
  675. #define sz_xGLXGetMinmaxReply 32
  676.  
  677. typedef struct {
  678.     BYTE    type;            /* X_Reply */
  679.     CARD8    unused;            /* not used */
  680.     CARD16    sequenceNumber B16;
  681.     CARD32    length B32;
  682.     CARD32    retval B32;
  683.     CARD32    size B32;
  684.     CARD32    newMode B32;
  685.     CARD32    pad4 B32;
  686.     CARD32    pad5 B32;
  687.     CARD32    pad6 B32;
  688. } xGLXRenderModeReply;
  689. #define sz_xGLXRenderModeReply 32
  690.  
  691. typedef struct {
  692.     BYTE    type;            /* X_Reply */
  693.     CARD8    unused;            /* not used */
  694.     CARD16    sequenceNumber B16;
  695.     CARD32    length B32;
  696.     CARD32    majorVersion B32;
  697.     CARD32    minorVersion B32;
  698.     CARD32    pad3 B32;
  699.     CARD32    pad4 B32;
  700.     CARD32    pad5 B32;
  701.     CARD32    pad6 B32;
  702. } xGLXQueryVersionReply;
  703. #define sz_xGLXQueryVersionReply 32
  704.  
  705. typedef struct {
  706.     BYTE    type;            /* X_Reply */
  707.     CARD8    unused;            /* not used */
  708.     CARD16    sequenceNumber B16;
  709.     CARD32    length B32;
  710.     CARD32    numVisuals B32;
  711.     CARD32    numProps B32;
  712.     CARD32    pad3 B32;
  713.     CARD32    pad4 B32;
  714.     CARD32    pad5 B32;
  715.     CARD32    pad6 B32;
  716. } xGLXGetVisualConfigsReply;
  717. #define sz_xGLXGetVisualConfigsReply 32
  718.  
  719. typedef struct {
  720.     BYTE    type;            /* X_Reply */
  721.     CARD8    unused;            /* not used */
  722.     CARD16    sequenceNumber B16;
  723.     CARD32    length B32;
  724.     BOOL    isDirect;
  725.     CARD8    pad1;
  726.     CARD16    pad2 B16;
  727.     CARD32    pad3 B32;
  728.     CARD32    pad4 B32;
  729.     CARD32    pad5 B32;
  730.     CARD32    pad6 B32;
  731.     CARD32    pad7 B32;
  732. } xGLXIsDirectReply;
  733. #define sz_xGLXIsDirectReply    32
  734.  
  735. /*
  736. ** This reply structure is used for all single replies.  Single replies
  737. ** ship either 1 piece of data or N pieces of data.  In these cases
  738. ** size indicates how much data is to be returned.
  739. */
  740. typedef struct {
  741.     BYTE    type;            /* X_Reply */
  742.     CARD8    unused;            /* not used */
  743.     CARD16    sequenceNumber B16;
  744.     CARD32    length B32;
  745.     CARD32    retval B32;
  746.     CARD32    size B32;
  747.     CARD32    pad3 B32;        /* NOTE: may hold a single value */
  748.     CARD32    pad4 B32;        /* NOTE: may hold half a double */
  749.     CARD32    pad5 B32;
  750.     CARD32    pad6 B32;
  751. } xGLXSingleReply;
  752. #define sz_xGLXSingleReply 32
  753.  
  754. /*
  755. ** This reply structure is used for all Vendor Private replies. Vendor
  756. ** Private replies can ship up to 24 bytes within the header or can
  757. ** be variable sized, in which case, the reply length field indicates
  758. ** the number of words of data which follow the header.
  759. */
  760. typedef struct {
  761.     BYTE    type;            /* X_Reply */
  762.     CARD8    unused;            /* not used */
  763.     CARD16    sequenceNumber B16;
  764.     CARD32    length B32;
  765.     CARD32    retval B32;
  766.     CARD32    size B32;
  767.     CARD32    pad3 B32;
  768.     CARD32    pad4 B32;
  769.     CARD32    pad5 B32;
  770.     CARD32    pad6 B32;
  771. } xGLXVendorPrivReply;
  772. #define sz_xGLXVendorPrivReply 32
  773.  
  774. /*
  775. **  QueryExtensionsStringReply
  776. **  n indicates the number of bytes to be returned.
  777. */
  778. typedef struct {
  779.     BYTE    type;            /* X_Reply */
  780.     CARD8    unused;            /* not used */
  781.     CARD16    sequenceNumber B16;
  782.     CARD32    length B32;
  783.     CARD32    pad1 B32;
  784.     CARD32    n B32;
  785.     CARD32    pad3 B32;
  786.     CARD32    pad4 B32;
  787.     CARD32    pad5 B32;
  788.     CARD32    pad6 B32;
  789. } xGLXQueryExtensionsStringReply;
  790. #define sz_xGLXQueryExtensionsStringReply 32
  791.  
  792. /*
  793. ** QueryServerString Reply struct
  794. ** n indicates the number of bytes to be returned.
  795. */
  796. typedef struct {
  797.     BYTE    type;            /* X_Reply */
  798.     CARD8    unused;            /* not used */
  799.     CARD16    sequenceNumber B16;
  800.     CARD32    length B32;
  801.     CARD32    pad1 B32;
  802.     CARD32    n B32;
  803.     CARD32    pad3 B32;        /* NOTE: may hold a single value */
  804.     CARD32    pad4 B32;        /* NOTE: may hold half a double */
  805.     CARD32    pad5 B32;
  806.     CARD32    pad6 B32;
  807. } xGLXQueryServerStringReply;
  808. #define sz_xGLXQueryServerStringReply 32
  809.  
  810. /*** Start of GLX 1.3 replies */
  811.  
  812. /*
  813. ** glXGetFBConfigs reply
  814. */
  815. typedef struct {
  816.     BYTE    type;            /* X_Reply */
  817.     CARD8    unused;            /* not used */
  818.     CARD16    sequenceNumber B16;
  819.     CARD32    length B32;
  820.     CARD32    numFBConfigs B32;
  821.     CARD32    numAttribs B32;
  822.     CARD32    pad3 B32;
  823.     CARD32    pad4 B32;
  824.     CARD32    pad5 B32;
  825.     CARD32    pad6 B32;
  826. } xGLXGetFBConfigsReply;
  827. #define sz_xGLXGetFBConfigsReply 32
  828.  
  829. /*
  830. ** glXQueryContext reply
  831. */
  832. typedef struct {
  833.     BYTE    type;            /* X_Reply */
  834.     CARD8    unused;            /* not used */
  835.     CARD16    sequenceNumber B16;
  836.     CARD32    length B32;
  837.     CARD32    n B32;            /* number of attribute/value pairs */
  838.     CARD32    pad2 B32;
  839.     CARD32    pad3 B32;
  840.     CARD32    pad4 B32;
  841.     CARD32    pad5 B32;
  842.     CARD32    pad6 B32;
  843. } xGLXQueryContextReply;
  844. #define sz_xGLXQueryContextReply 32
  845.  
  846. /*
  847. ** glXMakeContextCurrent reply
  848. */
  849. typedef struct {
  850.     BYTE    type;            /* X_Reply */
  851.     CARD8    unused;            /* not used */
  852.     CARD16    sequenceNumber B16;
  853.     CARD32    length B32;
  854.     GLXContextTag contextTag B32;
  855.     CARD32    pad2 B32;
  856.     CARD32    pad3 B32;
  857.     CARD32    pad4 B32;
  858.     CARD32    pad5 B32;
  859.     CARD32    pad6 B32;
  860. } xGLXMakeContextCurrentReply;
  861. #define sz_xGLXMakeContextCurrentReply 32
  862.  
  863. /*
  864. ** glXCreateGLXPbuffer reply
  865. ** This is used only in the direct rendering case on SGIs - otherwise
  866. **  CreateGLXPbuffer has no reply. It is not part of GLX 1.3.
  867. */
  868. typedef struct {
  869.     BYTE    type;            /* X_Reply */
  870.     CARD8    success;
  871.     CARD16    sequenceNumber B16;
  872.     CARD32    length B32;
  873.     CARD32    pad1 B32;
  874.     CARD32    pad2 B32;
  875.     CARD32    pad3 B32;
  876.     CARD32    pad4 B32;
  877.     CARD32    pad5 B32;
  878.     CARD32    pad6 B32;
  879. } xGLXCreateGLXPbufferReply;
  880. #define sz_xGLXCreateGLXPbufferReply 32
  881.  
  882. /*
  883. ** glXGetDrawableAttributes reply
  884. */
  885. typedef struct {
  886.     BYTE    type;            /* X_Reply */
  887.     CARD8    unused;            /* not used */
  888.     CARD16    sequenceNumber B16;
  889.     CARD32    length B32;
  890.     CARD32    numAttribs B32;
  891.     CARD32    pad2 B32;
  892.     CARD32    pad3 B32;
  893.     CARD32    pad4 B32;
  894.     CARD32    pad5 B32;
  895.     CARD32    pad6 B32;
  896. } xGLXGetDrawableAttributesReply;
  897. #define sz_xGLXGetDrawableAttributesReply 32
  898.  
  899. /*
  900. ** glXGetColorTable reply
  901. */
  902. typedef struct {
  903.     BYTE    type;               /* X_Reply */
  904.     CARD8    unused;               /* not used */
  905.     CARD16    sequenceNumber B16;
  906.     CARD32    length B32;
  907.     CARD32    pad1 B32;
  908.     CARD32    pad2 B32;
  909.     CARD32    width B32;
  910.     CARD32    pad4 B32;
  911.     CARD32    pad5 B32;
  912.     CARD32    pad6 B32;
  913. } xGLXGetColorTableReply;
  914. #define sz_xGLXGetColorTableReply 32
  915.  
  916. /************************************************************************/
  917.  
  918. /* GLX extension requests and replies */
  919.  
  920. /*
  921. ** glXQueryContextInfoEXT request
  922. */
  923. typedef struct GLXQueryContextInfoEXT {
  924.     CARD8    reqType;
  925.     CARD8    glxCode;
  926.     CARD16    length B16;
  927.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  928.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  929.     GLXContextID context B32;
  930. } xGLXQueryContextInfoEXTReq;
  931. #define sz_xGLXQueryContextInfoEXTReq 16
  932.  
  933. /*
  934. ** glXQueryContextInfoEXT reply
  935. */
  936. typedef struct {
  937.     BYTE    type;            /* X_Reply */
  938.     CARD8    unused;            /* not used */
  939.     CARD16    sequenceNumber B16;
  940.     CARD32    length B32;
  941.     CARD32    n B32;            /* number of attribute/value pairs */
  942.     CARD32    pad2 B32;
  943.     CARD32    pad3 B32;
  944.     CARD32    pad4 B32;
  945.     CARD32    pad5 B32;
  946.     CARD32    pad6 B32;
  947. } xGLXQueryContextInfoEXTReply;
  948. #define sz_xGLXQueryContextInfoEXTReply 32
  949.  
  950. /*
  951. ** glXMakeCurrentReadSGI request
  952. */
  953. typedef struct GLXMakeCurrentReadSGI {
  954.     CARD8    reqType;
  955.     CARD8    glxCode;
  956.     CARD16    length B16;
  957.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  958.     GLXContextTag oldContextTag B32;
  959.     GLXDrawable drawable B32;
  960.     GLXDrawable readable B32;
  961.     GLXContextID context B32;
  962. } xGLXMakeCurrentReadSGIReq;
  963. #define sz_xGLXMakeCurrentReadSGIReq 24
  964.  
  965. typedef struct {
  966.     BYTE    type;            /* X_Reply */
  967.     CARD8    unused;            /* not used */
  968.     CARD16    sequenceNumber B16;
  969.     CARD32    length B32;
  970.     GLXContextTag contextTag B32;
  971.     CARD32    writeVid B32;
  972.     CARD32    writeType B32;
  973.     CARD32    readVid B32;
  974.     CARD32    readType B32;
  975.     CARD32    pad6 B32;
  976. } xGLXMakeCurrentReadSGIReply;
  977. #define sz_xGLXMakeCurrentReadSGIReply 32
  978.  
  979. /*
  980. ** glXGetFBConfigsSGIX request
  981. */
  982. typedef struct GLXGetFBConfigsSGIX {
  983.     CARD8    reqType;
  984.     CARD8    glxCode;
  985.     CARD16    length B16;
  986.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  987.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  988.     CARD32    screen B32;
  989. } xGLXGetFBConfigsSGIXReq;
  990. #define sz_xGLXGetFBConfigsSGIXReq 16
  991.  
  992. /*
  993. ** glXCreateContextWithConfigSGIX request
  994. */
  995.  
  996. typedef struct GLXCreateContextWithConfigSGIX {
  997.     CARD8    reqType;
  998.     CARD8    glxCode;
  999.     CARD16    length B16;
  1000.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1001.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1002.     GLXContextID context B32;
  1003.     GLXFBConfigID fbconfig B32;
  1004.     CARD32    screen B32;
  1005.     CARD32    renderType;
  1006.     GLXContextID shareList B32;
  1007.     BOOL    isDirect;
  1008.     CARD8    reserved1;
  1009.     CARD16    reserved2 B16;
  1010. } xGLXCreateContextWithConfigSGIXReq;
  1011. #define sz_xGLXCreateContextWithConfigSGIXReq 36
  1012.  
  1013. /*
  1014. ** glXCreatePixmapWithConfigSGIX request
  1015. */
  1016.  
  1017. typedef struct GLXCreateGLXPixmapWithConfigSGIX {
  1018.     CARD8    reqType;
  1019.     CARD8    glxCode;
  1020.     CARD16    length B16;
  1021.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1022.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1023.     CARD32    screen B32;
  1024.     GLXFBConfigID fbconfig B32;
  1025.     CARD32    pixmap B32;
  1026.     GLXPixmap    glxpixmap B32;
  1027. } xGLXCreateGLXPixmapWithConfigSGIXReq;
  1028. #define sz_xGLXCreateGLXPixmapWithConfigSGIXReq 28
  1029.  
  1030. /*
  1031. ** glXJoinSwapGroupSGIX request
  1032. */
  1033. typedef struct GLXJoinSwapGroupSGIX {
  1034.     CARD8    reqType;
  1035.     CARD8    glxCode;
  1036.     CARD16    length B16;
  1037.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1038.     CARD32     unused B32;        /* corresponds to contextTag in hdr */
  1039.     GLXDrawable    drawable B32;
  1040.     GLXDrawable    member B32;
  1041. } xGLXJoinSwapGroupSGIXReq;
  1042. #define sz_xGLXJoinSwapGroupSGIXReq 20
  1043.  
  1044. /*
  1045. ** glXBindSwapBarrierSGIX request
  1046. */
  1047. typedef struct GLXBindSwapBarrierSGIX {
  1048.     CARD8    reqType;
  1049.     CARD8    glxCode;
  1050.     CARD16    length B16;
  1051.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1052.     CARD32     unused B32;        /* corresponds to contextTag in hdr */
  1053.     GLXDrawable    drawable B32;
  1054.     CARD32    barrier B32;
  1055. } xGLXBindSwapBarrierSGIXReq;
  1056. #define sz_xGLXBindSwapBarrierSGIXReq 20
  1057.  
  1058. /*
  1059. ** glXQueryMaxSwapBarriersSGIX request
  1060. */
  1061. typedef struct GLXQueryMaxSwapBarriersSGIX {
  1062.     CARD8    reqType;
  1063.     CARD8    glxCode;
  1064.     CARD16    length B16;
  1065.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1066.     CARD32     unused B32;        /* corresponds to contextTag in hdr */
  1067.     CARD32    screen B32;
  1068. } xGLXQueryMaxSwapBarriersSGIXReq;
  1069. #define sz_xGLXQueryMaxSwapBarriersSGIXReq 16
  1070.  
  1071. typedef struct {
  1072.     BYTE    type;            /* X_Reply */
  1073.     CARD8    unused;            /* not used */
  1074.     CARD16    sequenceNumber B16;
  1075.     CARD32    length B32;
  1076.     CARD32    max B32;
  1077.     CARD32    size B32;
  1078.     CARD32    pad3 B32;
  1079.     CARD32    pad4 B32;
  1080.     CARD32    pad5 B32;
  1081.     CARD32    pad6 B32;
  1082. } xGLXQueryMaxSwapBarriersSGIXReply;
  1083. #define sz_xGLXQueryMaxSwapBarriersSGIXReply 32
  1084.  
  1085. /************************************************************************/
  1086.  
  1087. /*
  1088. ** Events
  1089. */
  1090.  
  1091. typedef struct {
  1092.     BYTE type;
  1093.     BYTE pad;
  1094.     CARD16 sequenceNumber B16;
  1095.     CARD16 event_type B16;  /*** was clobber_class */
  1096.     CARD16 draw_type B16;
  1097.     CARD32 drawable B32;
  1098.     CARD32 buffer_mask B32; /*** was mask */
  1099.     CARD16 aux_buffer B16;
  1100.     CARD16 x B16;
  1101.     CARD16 y B16;
  1102.     CARD16 width B16;
  1103.     CARD16 height B16;
  1104.     CARD16 count B16;
  1105.     CARD32 unused2 B32;
  1106. } xGLXPbufferClobberEvent;
  1107.  
  1108. /************************************************************************/
  1109.  
  1110. /*
  1111. ** Size of the standard X request header.
  1112. */
  1113. #define __GLX_SINGLE_HDR_SIZE sz_xGLXSingleReq
  1114. #define __GLX_VENDPRIV_HDR_SIZE sz_xGLXVendorPrivateReq
  1115.  
  1116. #define __GLX_RENDER_HDR    \
  1117.     CARD16    length B16; \
  1118.     CARD16    opcode B16
  1119.  
  1120. #define __GLX_RENDER_HDR_SIZE 4
  1121.  
  1122. typedef struct {
  1123.     __GLX_RENDER_HDR;
  1124. } __GLXrenderHeader;
  1125.  
  1126. #define __GLX_RENDER_LARGE_HDR \
  1127.     CARD32    length B32;    \
  1128.     CARD32    opcode B32
  1129.  
  1130. #define __GLX_RENDER_LARGE_HDR_SIZE 8
  1131.  
  1132. typedef struct {
  1133.     __GLX_RENDER_LARGE_HDR;
  1134. } __GLXrenderLargeHeader;
  1135.  
  1136. /*
  1137. ** The glBitmap, glPolygonStipple, glTexImage[12]D, glTexSubImage[12]D
  1138. ** and glDrawPixels calls all have a pixel header transmitted after the
  1139. ** Render or RenderLarge header and before their own opcode specific
  1140. ** headers.
  1141. */
  1142. #define __GLX_PIXEL_HDR        \
  1143.     BOOL    swapBytes;    \
  1144.     BOOL    lsbFirst;    \
  1145.     CARD8    reserved0;    \
  1146.     CARD8    reserved1;    \
  1147.     CARD32    rowLength B32;    \
  1148.     CARD32    skipRows B32;    \
  1149.     CARD32    skipPixels B32; \
  1150.     CARD32    alignment B32
  1151.  
  1152. #define __GLX_PIXEL_HDR_SIZE 20
  1153.  
  1154. typedef struct {
  1155.     __GLX_PIXEL_HDR;
  1156. } __GLXpixelHeader;
  1157.  
  1158. /*
  1159. ** glTexImage[34]D and glTexSubImage[34]D calls
  1160. ** all have a pixel header transmitted after the Render or RenderLarge
  1161. ** header and before their own opcode specific headers.
  1162. */
  1163. #define __GLX_PIXEL_3D_HDR        \
  1164.     BOOL    swapBytes;        \
  1165.     BOOL    lsbFirst;        \
  1166.     CARD8    reserved0;        \
  1167.     CARD8    reserved1;        \
  1168.     CARD32    rowLength B32;        \
  1169.     CARD32    imageHeight B32;    \
  1170.     CARD32    imageDepth B32;        \
  1171.     CARD32    skipRows B32;        \
  1172.     CARD32    skipImages B32;        \
  1173.     CARD32    skipVolumes B32;    \
  1174.     CARD32    skipPixels B32;        \
  1175.     CARD32    alignment B32
  1176.  
  1177. #define __GLX_PIXEL_3D_HDR_SIZE 36
  1178.  
  1179. /*
  1180. ** Data that is specific to a glBitmap call.  The data is sent in the
  1181. ** following order:
  1182. **    Render or RenderLarge header
  1183. **    Pixel header
  1184. **    Bitmap header
  1185. */
  1186. #define __GLX_BITMAP_HDR    \
  1187.     CARD32    width B32;  \
  1188.     CARD32    height B32; \
  1189.     FLOAT32    xorig F32;  \
  1190.     FLOAT32    yorig F32;  \
  1191.     FLOAT32    xmove F32;  \
  1192.     FLOAT32    ymove F32
  1193.  
  1194. typedef struct {
  1195.     __GLX_RENDER_HDR;
  1196.     __GLX_PIXEL_HDR;
  1197.     __GLX_BITMAP_HDR;
  1198. } __GLXbitmapHeader;
  1199.  
  1200. typedef struct {
  1201.     __GLX_RENDER_LARGE_HDR;
  1202.     __GLX_PIXEL_HDR;
  1203.     __GLX_BITMAP_HDR;
  1204. } __GLXbitmapLargeHeader;
  1205.  
  1206. typedef struct {
  1207.     __GLX_PIXEL_HDR;
  1208.     __GLX_BITMAP_HDR;
  1209. } __GLXdispatchBitmapHeader;
  1210.  
  1211. #define __GLX_BITMAP_HDR_SIZE 24
  1212.  
  1213. #define __GLX_BITMAP_CMD_HDR_SIZE \
  1214.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
  1215.  
  1216. #define __GLX_BITMAP_CMD_DISPATCH_HDR_SIZE \
  1217.     (__GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
  1218.  
  1219. typedef struct {
  1220.     __GLX_RENDER_HDR;
  1221.     __GLX_PIXEL_HDR;
  1222. } __GLXpolygonStippleHeader;
  1223.  
  1224. #define __GLX_POLYGONSTIPPLE_CMD_HDR_SIZE \
  1225.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE)
  1226.  
  1227. /*
  1228. ** Data that is specific to a glTexImage1D or glTexImage2D call.  The
  1229. ** data is sent in the following order:
  1230. **    Render or RenderLarge header
  1231. **    Pixel header
  1232. **    TexImage header
  1233. ** When a glTexImage1D call the height field is unexamined by the server.
  1234. */
  1235. #define __GLX_TEXIMAGE_HDR    \
  1236.     CARD32    target B32;    \
  1237.     CARD32    level B32;    \
  1238.     CARD32    components B32; \
  1239.     CARD32    width B32;    \
  1240.     CARD32    height B32;    \
  1241.     CARD32    border B32;    \
  1242.     CARD32    format B32;    \
  1243.     CARD32    type B32
  1244.  
  1245. #define __GLX_TEXIMAGE_HDR_SIZE 32
  1246.  
  1247. #define __GLX_TEXIMAGE_CMD_HDR_SIZE \
  1248.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
  1249.  
  1250. #define __GLX_TEXIMAGE_CMD_DISPATCH_HDR_SIZE \
  1251.     (__GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
  1252.  
  1253. typedef struct {
  1254.     __GLX_RENDER_HDR;
  1255.     __GLX_PIXEL_HDR;
  1256.     __GLX_TEXIMAGE_HDR;
  1257. } __GLXtexImageHeader;
  1258.  
  1259. typedef struct {
  1260.     __GLX_RENDER_LARGE_HDR;
  1261.     __GLX_PIXEL_HDR;
  1262.     __GLX_TEXIMAGE_HDR;
  1263. } __GLXtexImageLargeHeader;
  1264.  
  1265. typedef struct {
  1266.     __GLX_PIXEL_HDR;
  1267.     __GLX_TEXIMAGE_HDR;
  1268. } __GLXdispatchTexImageHeader;
  1269.  
  1270. /*
  1271. ** Data that is specific to a glTexImage3D or glTexImage4D call.  The
  1272. ** data is sent in the following order:
  1273. **    Render or RenderLarge header
  1274. **    Pixel 3D header
  1275. **    TexImage 3D header
  1276. ** When a glTexImage3D call the size4d and woffset fields are unexamined
  1277. ** by the server.
  1278. ** Could be used by all TexImage commands and perhaps should be in the
  1279. ** future.
  1280. */
  1281. #define __GLX_TEXIMAGE_3D_HDR \
  1282.     CARD32    target B32;    \
  1283.     CARD32    level B32;    \
  1284.     CARD32    internalformat B32;    \
  1285.     CARD32    width B32;    \
  1286.     CARD32    height B32;    \
  1287.     CARD32    depth B32;    \
  1288.     CARD32    size4d B32;    \
  1289.     CARD32    border B32;    \
  1290.     CARD32    format B32;    \
  1291.     CARD32    type B32;    \
  1292.     CARD32    nullimage B32
  1293.  
  1294. #define __GLX_TEXIMAGE_3D_HDR_SIZE 44
  1295.  
  1296. #define __GLX_TEXIMAGE_3D_CMD_HDR_SIZE \
  1297.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
  1298.         __GLX_TEXIMAGE_3D_HDR_SIZE)
  1299.  
  1300. #define __GLX_TEXIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
  1301.     (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXIMAGE_3D_HDR_SIZE)
  1302.  
  1303. typedef struct {
  1304.     __GLX_RENDER_HDR;
  1305.     __GLX_PIXEL_3D_HDR;
  1306.     __GLX_TEXIMAGE_3D_HDR;
  1307. } __GLXtexImage3DHeader;
  1308.  
  1309. typedef struct {
  1310.     __GLX_RENDER_LARGE_HDR;
  1311.     __GLX_PIXEL_3D_HDR;
  1312.     __GLX_TEXIMAGE_3D_HDR;
  1313. } __GLXtexImage3DLargeHeader;
  1314.  
  1315. typedef struct {
  1316.     __GLX_PIXEL_3D_HDR;
  1317.     __GLX_TEXIMAGE_3D_HDR;
  1318. } __GLXdispatchTexImage3DHeader;
  1319.  
  1320. /*
  1321. ** Data that is specific to a glTexSubImage1D or glTexSubImage2D call.    The
  1322. ** data is sent in the following order:
  1323. **    Render or RenderLarge header
  1324. **    Pixel header
  1325. **    TexSubImage header
  1326. ** When a glTexSubImage1D call is made, the yoffset and height fields
  1327. ** are unexamined by the server and are  considered to be padding.
  1328. */
  1329. #define __GLX_TEXSUBIMAGE_HDR    \
  1330.     CARD32    target B32;    \
  1331.     CARD32    level B32;    \
  1332.     CARD32    xoffset B32;    \
  1333.     CARD32    yoffset B32;    \
  1334.     CARD32    width B32;    \
  1335.     CARD32    height B32;    \
  1336.     CARD32    format B32;    \
  1337.     CARD32    type B32;    \
  1338.     CARD32    nullImage    \
  1339.  
  1340. #define __GLX_TEXSUBIMAGE_HDR_SIZE 36
  1341.  
  1342. #define __GLX_TEXSUBIMAGE_CMD_HDR_SIZE \
  1343.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
  1344.  
  1345. #define __GLX_TEXSUBIMAGE_CMD_DISPATCH_HDR_SIZE \
  1346.     (__GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
  1347.  
  1348. typedef struct {
  1349.     __GLX_RENDER_HDR;
  1350.     __GLX_PIXEL_HDR;
  1351.     __GLX_TEXSUBIMAGE_HDR;
  1352. } __GLXtexSubImageHeader;
  1353.  
  1354. typedef struct {
  1355.     __GLX_RENDER_LARGE_HDR;
  1356.     __GLX_PIXEL_HDR;
  1357.     __GLX_TEXSUBIMAGE_HDR;
  1358. } __GLXtexSubImageLargeHeader;
  1359.  
  1360. typedef struct {
  1361.     __GLX_PIXEL_HDR;
  1362.     __GLX_TEXSUBIMAGE_HDR;
  1363. } __GLXdispatchTexSubImageHeader;
  1364.  
  1365. /*
  1366. ** Data that is specific to a glTexSubImage3D and 4D calls.  The
  1367. ** data is sent in the following order:
  1368. **    Render or RenderLarge header
  1369. **    Pixel 3D header
  1370. **    TexSubImage 3D header
  1371. ** When a glTexSubImage3D call is made, the woffset and size4d fields
  1372. ** are unexamined by the server and are considered to be padding.
  1373. */
  1374. #define __GLX_TEXSUBIMAGE_3D_HDR    \
  1375.     CARD32    target B32;    \
  1376.     CARD32    level B32;    \
  1377.     CARD32    xoffset B32;    \
  1378.     CARD32    yoffset B32;    \
  1379.     CARD32    zoffset B32;    \
  1380.     CARD32    woffset B32;    \
  1381.     CARD32    width B32;    \
  1382.     CARD32    height B32;    \
  1383.     CARD32    depth B32;    \
  1384.     CARD32    size4d B32;    \
  1385.     CARD32    format B32;    \
  1386.     CARD32    type B32;    \
  1387.     CARD32    nullImage    \
  1388.  
  1389. #define __GLX_TEXSUBIMAGE_3D_HDR_SIZE 52
  1390.  
  1391. #define __GLX_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
  1392.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
  1393.         __GLX_TEXSUBIMAGE_3D_HDR_SIZE)
  1394.  
  1395. #define __GLX_TEXSUBIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
  1396.     (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXSUBIMAGE_3D_HDR_SIZE)
  1397.  
  1398. typedef struct {
  1399.     __GLX_RENDER_HDR;
  1400.     __GLX_PIXEL_3D_HDR;
  1401.     __GLX_TEXSUBIMAGE_3D_HDR;
  1402. } __GLXtexSubImage3DHeader;
  1403.  
  1404. typedef struct {
  1405.     __GLX_RENDER_LARGE_HDR;
  1406.     __GLX_PIXEL_3D_HDR;
  1407.     __GLX_TEXSUBIMAGE_3D_HDR;
  1408. } __GLXtexSubImage3DLargeHeader;
  1409.  
  1410. typedef struct {
  1411.     __GLX_PIXEL_3D_HDR;
  1412.     __GLX_TEXSUBIMAGE_3D_HDR;
  1413. } __GLXdispatchTexSubImage3DHeader;
  1414.  
  1415. /**
  1416.  * Data that is specific to a \c glCompressedTexImage1D or
  1417.  * \c glCompressedTexImage2D call.  The data is sent in the following
  1418.  * order:
  1419.  *     - Render or RenderLarge header
  1420.  *     - CompressedTexImage header
  1421.  * 
  1422.  * When a \c glCompressedTexImage1D call is made, the \c height field is
  1423.  * not examined by the server and is considered padding.
  1424.  */
  1425.  
  1426. #define __GLX_COMPRESSED_TEXIMAGE_HDR \
  1427.     CARD32     target B32;            \
  1428.     CARD32     level B32;             \
  1429.     CARD32     internalFormat B32;    \
  1430.     CARD32     width B32;             \
  1431.     CARD32     height B32;            \
  1432.     CARD32     border B32;            \
  1433.     CARD32     imageSize B32
  1434.  
  1435. #define __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE 28
  1436.  
  1437. #define __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE \
  1438.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
  1439.  
  1440. #define __GLX_COMPRESSED_TEXIMAGE_DISPATCH_HDR_SIZE \
  1441.     (__GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
  1442.  
  1443. typedef struct {
  1444.     __GLX_RENDER_HDR;
  1445.     __GLX_COMPRESSED_TEXIMAGE_HDR;
  1446. } __GLXcompressedTexImageHeader;
  1447.  
  1448. typedef struct {
  1449.     __GLX_RENDER_LARGE_HDR;
  1450.     __GLX_COMPRESSED_TEXIMAGE_HDR;
  1451. } __GLXcompressedTexImageLargeHeader;
  1452.  
  1453. typedef struct {
  1454.     __GLX_COMPRESSED_TEXIMAGE_HDR;
  1455. } __GLXdispatchCompressedTexImageHeader;
  1456.  
  1457. /**
  1458.  * Data that is specifi to a \c glCompressedTexSubImage1D or
  1459.  * \c glCompressedTexSubImage2D call.  The data is sent in the following
  1460.  * order:
  1461.  *     - Render or RenderLarge header
  1462.  *     - CompressedTexSubImage header
  1463.  * 
  1464.  * When a \c glCompressedTexSubImage1D call is made, the \c yoffset and
  1465.  * \c height fields are not examined by the server and are considered padding.
  1466.  */
  1467.  
  1468. #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR \
  1469.     CARD32     target B32;            \
  1470.     CARD32     level B32;             \
  1471.     CARD32     xoffset B32;           \
  1472.     CARD32     yoffset B32;           \
  1473.     CARD32     width B32;             \
  1474.     CARD32     height B32;            \
  1475.     CARD32     format B32;            \
  1476.     CARD32     imageSize B32
  1477.  
  1478. #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE 32
  1479.  
  1480. #define __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE \
  1481.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
  1482.  
  1483. #define __GLX_COMPRESSED_TEXSUBIMAGE_DISPATCH_HDR_SIZE \
  1484.     (__GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
  1485.  
  1486. typedef struct {
  1487.     __GLX_RENDER_HDR;
  1488.     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
  1489. } __GLXcompressedTexSubImageHeader;
  1490.  
  1491. typedef struct {
  1492.     __GLX_RENDER_LARGE_HDR;
  1493.     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
  1494. } __GLXcompressedTexSubImageLargeHeader;
  1495.  
  1496. typedef struct {
  1497.     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
  1498. } __GLXdispatchCompressedTexSubImageHeader;
  1499.  
  1500. /**
  1501.  * Data that is specific to a \c glCompressedTexImage3D call.  The data is
  1502.  * sent in the following order:
  1503.  *     - Render or RenderLarge header
  1504.  *     - CompressedTexImage3D header
  1505.  */
  1506.  
  1507. #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR \
  1508.     CARD32     target B32;            \
  1509.     CARD32     level B32;             \
  1510.     CARD32     internalFormat B32;    \
  1511.     CARD32     width B32;             \
  1512.     CARD32     height B32;            \
  1513.     CARD32     depth B32;             \
  1514.     CARD32     border B32;            \
  1515.     CARD32     imageSize B32
  1516.  
  1517. #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE 32
  1518.  
  1519. #define __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE \
  1520.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
  1521.  
  1522. #define __GLX_COMPRESSED_TEXIMAGE_3D_DISPATCH_HDR_SIZE \
  1523.     (__GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
  1524.  
  1525. typedef struct {
  1526.     __GLX_RENDER_HDR;
  1527.     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
  1528. } __GLXcompressedTexImage3DHeader;
  1529.  
  1530. typedef struct {
  1531.     __GLX_RENDER_LARGE_HDR;
  1532.     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
  1533. } __GLXcompressedTexImage3DLargeHeader;
  1534.  
  1535. typedef struct {
  1536.     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
  1537. } __GLXdispatchCompressedTexImage3DHeader;
  1538.  
  1539. /**
  1540.  * Data that is specifi to a \c glCompressedTexSubImage3D call.  The data is
  1541.  * sent in the following order:
  1542.  *     - Render or RenderLarge header
  1543.  *     - CompressedTexSubImage3D header
  1544.  */
  1545.  
  1546. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR \
  1547.     CARD32     target B32;            \
  1548.     CARD32     level B32;             \
  1549.     CARD32     xoffset B32;           \
  1550.     CARD32     yoffset B32;           \
  1551.     CARD32     zoffset B32;           \
  1552.     CARD32     width B32;             \
  1553.     CARD32     height B32;            \
  1554.     CARD32     depth B32;             \
  1555.     CARD32     format B32;            \
  1556.     CARD32     imageSize B32
  1557.  
  1558. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE 32
  1559.  
  1560. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
  1561.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
  1562.  
  1563. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_DISPATCH_HDR_SIZE \
  1564.     (__GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
  1565.  
  1566. typedef struct {
  1567.     __GLX_RENDER_HDR;
  1568.     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
  1569. } __GLXcompressedTexSubImage3DHeader;
  1570.  
  1571. typedef struct {
  1572.     __GLX_RENDER_LARGE_HDR;
  1573.     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
  1574. } __GLXcompressedTexSubImage3DLargeHeader;
  1575.  
  1576. typedef struct {
  1577.     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
  1578. } __GLXdispatchCompressedTexSubImage3DHeader;
  1579.  
  1580. /*
  1581. ** Data that is specific to a glDrawPixels call.  The data is sent in the
  1582. ** following order:
  1583. **    Render or RenderLarge header
  1584. **    Pixel header
  1585. **    DrawPixels header
  1586. */
  1587. #define __GLX_DRAWPIXELS_HDR \
  1588.     CARD32    width B32;   \
  1589.     CARD32    height B32;  \
  1590.     CARD32    format B32;  \
  1591.     CARD32    type B32
  1592.  
  1593. #define __GLX_DRAWPIXELS_HDR_SIZE 16
  1594.  
  1595. #define __GLX_DRAWPIXELS_CMD_HDR_SIZE \
  1596.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
  1597.  
  1598. #define __GLX_DRAWPIXELS_CMD_DISPATCH_HDR_SIZE \
  1599.     (__GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
  1600.  
  1601. typedef struct {
  1602.     __GLX_RENDER_HDR;
  1603.     __GLX_PIXEL_HDR;
  1604.     __GLX_DRAWPIXELS_HDR;
  1605. } __GLXdrawPixelsHeader;
  1606.  
  1607. typedef struct {
  1608.     __GLX_RENDER_LARGE_HDR;
  1609.     __GLX_PIXEL_HDR;
  1610.     __GLX_DRAWPIXELS_HDR;
  1611. } __GLXdrawPixelsLargeHeader;
  1612.  
  1613. typedef struct {
  1614.     __GLX_PIXEL_HDR;
  1615.     __GLX_DRAWPIXELS_HDR;
  1616. } __GLXdispatchDrawPixelsHeader;
  1617.  
  1618. /*
  1619. ** Data that is specific to a glConvolutionFilter1D or glConvolutionFilter2D
  1620. ** call.  The data is sent in the following order:
  1621. **    Render or RenderLarge header
  1622. **    Pixel header
  1623. **    ConvolutionFilter header
  1624. ** When a glConvolutionFilter1D call the height field is unexamined by the server.
  1625. */
  1626. #define __GLX_CONV_FILT_HDR    \
  1627.     CARD32    target B32;    \
  1628.     CARD32    internalformat B32;    \
  1629.     CARD32    width B32;    \
  1630.     CARD32    height B32;    \
  1631.     CARD32    format B32;    \
  1632.     CARD32    type B32
  1633.  
  1634. #define __GLX_CONV_FILT_HDR_SIZE 24
  1635.  
  1636. #define __GLX_CONV_FILT_CMD_HDR_SIZE \
  1637.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
  1638.  
  1639. #define __GLX_CONV_FILT_CMD_DISPATCH_HDR_SIZE \
  1640.     (__GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
  1641. typedef struct {
  1642.     __GLX_RENDER_HDR;
  1643.     __GLX_PIXEL_HDR;
  1644.     __GLX_CONV_FILT_HDR;
  1645. } __GLXConvolutionFilterHeader;
  1646.  
  1647. typedef struct {
  1648.     __GLX_RENDER_LARGE_HDR;
  1649.     __GLX_PIXEL_HDR;
  1650.     __GLX_CONV_FILT_HDR;
  1651. } __GLXConvolutionFilterLargeHeader;
  1652.  
  1653. typedef struct {
  1654.     __GLX_PIXEL_HDR;
  1655.     __GLX_CONV_FILT_HDR;
  1656. } __GLXdispatchConvolutionFilterHeader;
  1657.  
  1658. /*
  1659. ** Data that is specific to a glDrawArraysEXT call.  The data is sent in the
  1660. ** following order:
  1661. **    Render or RenderLarge header
  1662. **    Draw Arrays header
  1663. **    a variable number of Component headers
  1664. **    vertex data for each component type
  1665. */
  1666.  
  1667. #define __GLX_DRAWARRAYS_HDR \
  1668.     CARD32    numVertexes B32; \
  1669.     CARD32    numComponents B32; \
  1670.     CARD32    primType B32
  1671.  
  1672. #define __GLX_DRAWARRAYS_HDR_SIZE 12
  1673.  
  1674. #define __GLX_DRAWARRAYS_CMD_HDR_SIZE \
  1675.     (__GLX_RENDER_HDR_SIZE + __GLX_DRAWARRAYS_HDR_SIZE)
  1676.  
  1677. typedef struct {
  1678.     __GLX_RENDER_HDR;
  1679.     __GLX_DRAWARRAYS_HDR;
  1680. } __GLXdrawArraysHeader;
  1681.  
  1682. typedef struct {
  1683.     __GLX_RENDER_LARGE_HDR;
  1684.     __GLX_DRAWARRAYS_HDR;
  1685. } __GLXdrawArraysLargeHeader;
  1686.  
  1687. typedef struct {
  1688.     __GLX_DRAWARRAYS_HDR;
  1689. } __GLXdispatchDrawArraysHeader;
  1690.  
  1691. #define __GLX_COMPONENT_HDR \
  1692.     CARD32    datatype B32; \
  1693.     INT32    numVals B32; \
  1694.     CARD32    component B32
  1695.  
  1696. typedef struct {
  1697.     __GLX_COMPONENT_HDR;
  1698. } __GLXdispatchDrawArraysComponentHeader;
  1699.  
  1700. #define __GLX_COMPONENT_HDR_SIZE 12
  1701.  
  1702. /*
  1703. ** Data that is specific to a glColorTable call
  1704. **    The data is sent in the following order:
  1705. **    Render or RenderLarge header
  1706. **    Pixel header
  1707. **    ColorTable header
  1708. */
  1709.  
  1710. #define __GLX_COLOR_TABLE_HDR         \
  1711.     CARD32    target B32;        \
  1712.     CARD32    internalformat B32; \
  1713.     CARD32    width B32;        \
  1714.     CARD32    format B32;        \
  1715.     CARD32    type   B32
  1716.  
  1717. #define __GLX_COLOR_TABLE_HDR_SIZE 20
  1718.  
  1719. #define __GLX_COLOR_TABLE_CMD_HDR_SIZE \
  1720.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_COLOR_TABLE_HDR_SIZE)
  1721.  
  1722. typedef struct {
  1723.     __GLX_RENDER_HDR;
  1724.     __GLX_PIXEL_HDR;
  1725.     __GLX_COLOR_TABLE_HDR;
  1726. } __GLXColorTableHeader;
  1727.  
  1728. typedef struct {
  1729.     __GLX_RENDER_LARGE_HDR;
  1730.     __GLX_PIXEL_HDR;
  1731.     __GLX_COLOR_TABLE_HDR;
  1732. } __GLXColorTableLargeHeader;
  1733.  
  1734. typedef struct {
  1735.     __GLX_PIXEL_HDR;
  1736.     __GLX_COLOR_TABLE_HDR;
  1737. } __GLXdispatchColorTableHeader;
  1738.  
  1739. /*
  1740. ** Data that is specific to a glColorSubTable call
  1741. **    The data is sent in the following order:
  1742. **    Render or RenderLarge header
  1743. **    Pixel header
  1744. **    ColorTable header
  1745. */
  1746.  
  1747. #define __GLX_COLOR_SUBTABLE_HDR    \
  1748.     CARD32    target B32;        \
  1749.     CARD32    start B32;         \
  1750.     CARD32    count B32;        \
  1751.     CARD32    format B32;        \
  1752.     CARD32    type   B32
  1753.  
  1754. #define __GLX_COLOR_SUBTABLE_HDR_SIZE 20
  1755.  
  1756. #define __GLX_COLOR_SUBTABLE_CMD_HDR_SIZE \
  1757.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + \
  1758.      __GLX_COLOR_SUBTABLE_HDR_SIZE)
  1759.  
  1760. typedef struct {
  1761.     __GLX_RENDER_HDR;
  1762.     __GLX_PIXEL_HDR;
  1763.     __GLX_COLOR_SUBTABLE_HDR;
  1764. } __GLXColorSubTableHeader;
  1765.  
  1766. typedef struct {
  1767.     __GLX_RENDER_LARGE_HDR;
  1768.     __GLX_PIXEL_HDR;
  1769.     __GLX_COLOR_SUBTABLE_HDR;
  1770. } __GLXColorSubTableLargeHeader;
  1771.  
  1772. typedef struct {
  1773.     __GLX_PIXEL_HDR;
  1774.     __GLX_COLOR_SUBTABLE_HDR;
  1775. } __GLXdispatchColorSubTableHeader;
  1776.  
  1777. #define GLX_WINDOW_TYPE        1
  1778. #define GLX_PIXMAP_TYPE        2
  1779. #define GLX_VIDEO_SOURCE_TYPE    3
  1780. #define GLX_PBUFFER_TYPE    4
  1781. /* 5 is for DM_PBUFFER */
  1782. #define GLX_GLXWINDOW_TYPE    6    
  1783.  
  1784. /*****************************************************************************/
  1785.  
  1786. /*
  1787. ** Restore these definitions back to the typedefs in glx.h
  1788. */
  1789. #undef GLXContextID
  1790. #undef GLXPixmap
  1791. #undef GLXDrawable
  1792. #undef GLXPbuffer
  1793. #undef GLXWindow
  1794. #undef GLXFBConfigID
  1795. #undef GLXFBConfigIDSGIX
  1796. #undef GLXPbufferSGIX
  1797.  
  1798.  
  1799. /* Opcodes for GLX commands */
  1800.  
  1801. #define X_GLXRender                       1
  1802. #define X_GLXRenderLarge                  2
  1803. #define X_GLXCreateContext                3
  1804. #define X_GLXDestroyContext               4
  1805. #define X_GLXMakeCurrent                  5
  1806. #define X_GLXIsDirect                     6
  1807. #define X_GLXQueryVersion                 7
  1808. #define X_GLXWaitGL                       8
  1809. #define X_GLXWaitX                        9
  1810. #define X_GLXCopyContext                 10
  1811. #define X_GLXSwapBuffers                 11
  1812. #define X_GLXUseXFont                    12
  1813. #define X_GLXCreateGLXPixmap             13
  1814. #define X_GLXGetVisualConfigs            14
  1815. #define X_GLXDestroyGLXPixmap            15
  1816. #define X_GLXVendorPrivate               16
  1817. #define X_GLXVendorPrivateWithReply      17
  1818. #define X_GLXQueryExtensionsString       18
  1819. #define X_GLXQueryServerString           19
  1820. #define X_GLXClientInfo                  20
  1821. #define X_GLXGetFBConfigs                21
  1822. #define X_GLXCreatePixmap                22
  1823. #define X_GLXDestroyPixmap               23
  1824. #define X_GLXCreateNewContext            24
  1825. #define X_GLXQueryContext                25
  1826. #define X_GLXMakeContextCurrent          26
  1827. #define X_GLXCreatePbuffer               27
  1828. #define X_GLXDestroyPbuffer              28
  1829. #define X_GLXGetDrawableAttributes       29
  1830. #define X_GLXChangeDrawableAttributes    30
  1831. #define X_GLXCreateWindow                31
  1832. #define X_GLXDestroyWindow               32
  1833.  
  1834.  
  1835. /* Opcodes for single commands (part of GLX command space) */
  1836.  
  1837. #define X_GLsop_NewList                    101
  1838. #define X_GLsop_EndList                    102
  1839. #define X_GLsop_DeleteLists                103
  1840. #define X_GLsop_GenLists                   104
  1841. #define X_GLsop_FeedbackBuffer             105
  1842. #define X_GLsop_SelectBuffer               106
  1843. #define X_GLsop_RenderMode                 107
  1844. #define X_GLsop_Finish                     108
  1845. #define X_GLsop_Flush                      142
  1846. #define X_GLsop_PixelStoref                109
  1847. #define X_GLsop_PixelStorei                110
  1848. #define X_GLsop_ReadPixels                 111
  1849. #define X_GLsop_GetBooleanv                112
  1850. #define X_GLsop_GetClipPlane               113
  1851. #define X_GLsop_GetDoublev                 114
  1852. #define X_GLsop_GetError                   115
  1853. #define X_GLsop_GetFloatv                  116
  1854. #define X_GLsop_GetIntegerv                117
  1855. #define X_GLsop_GetLightfv                 118
  1856. #define X_GLsop_GetLightiv                 119
  1857. #define X_GLsop_GetMapdv                   120
  1858. #define X_GLsop_GetMapfv                   121
  1859. #define X_GLsop_GetMapiv                   122
  1860. #define X_GLsop_GetMaterialfv              123
  1861. #define X_GLsop_GetMaterialiv              124
  1862. #define X_GLsop_GetPixelMapfv              125
  1863. #define X_GLsop_GetPixelMapuiv             126
  1864. #define X_GLsop_GetPixelMapusv             127
  1865. #define X_GLsop_GetPolygonStipple          128
  1866. #define X_GLsop_GetString                  129
  1867. #define X_GLsop_GetTexEnvfv                130
  1868. #define X_GLsop_GetTexEnviv                131
  1869. #define X_GLsop_GetTexGendv                132
  1870. #define X_GLsop_GetTexGenfv                133
  1871. #define X_GLsop_GetTexGeniv                134
  1872. #define X_GLsop_GetTexImage                135
  1873. #define X_GLsop_GetTexParameterfv          136
  1874. #define X_GLsop_GetTexParameteriv          137
  1875. #define X_GLsop_GetTexLevelParameterfv     138
  1876. #define X_GLsop_GetTexLevelParameteriv     139
  1877. #define X_GLsop_IsEnabled                  140
  1878. #define X_GLsop_IsList                     141
  1879. #define X_GLsop_AreTexturesResident        143
  1880. #define X_GLsop_DeleteTextures             144
  1881. #define X_GLsop_GenTextures                145
  1882. #define X_GLsop_IsTexture                  146
  1883. #define X_GLsop_GetColorTable              147
  1884. #define X_GLsop_GetColorTableParameterfv   148
  1885. #define X_GLsop_GetColorTableParameteriv   149
  1886. #define X_GLsop_GetConvolutionFilter       150
  1887. #define X_GLsop_GetConvolutionParameterfv  151
  1888. #define X_GLsop_GetConvolutionParameteriv  152
  1889. #define X_GLsop_GetSeparableFilter         153
  1890. #define X_GLsop_GetHistogram               154
  1891. #define X_GLsop_GetHistogramParameterfv    155
  1892. #define X_GLsop_GetHistogramParameteriv    156
  1893. #define X_GLsop_GetMinmax                  157
  1894. #define X_GLsop_GetMinmaxParameterfv       158
  1895. #define X_GLsop_GetMinmaxParameteriv       159
  1896. #define X_GLsop_GetCompressedTexImage      160
  1897.  
  1898.  
  1899. /* Opcodes for rendering commands */
  1900.  
  1901. #define X_GLrop_CallList                     1
  1902. #define X_GLrop_CallLists                    2
  1903. #define X_GLrop_ListBase                     3
  1904. #define X_GLrop_Begin                        4
  1905. #define X_GLrop_Bitmap                       5
  1906. #define X_GLrop_Color3bv                     6
  1907. #define X_GLrop_Color3dv                     7
  1908. #define X_GLrop_Color3fv                     8
  1909. #define X_GLrop_Color3iv                     9
  1910. #define X_GLrop_Color3sv                    10
  1911. #define X_GLrop_Color3ubv                   11
  1912. #define X_GLrop_Color3uiv                   12
  1913. #define X_GLrop_Color3usv                   13
  1914. #define X_GLrop_Color4bv                    14
  1915. #define X_GLrop_Color4dv                    15
  1916. #define X_GLrop_Color4fv                    16
  1917. #define X_GLrop_Color4iv                    17
  1918. #define X_GLrop_Color4sv                    18
  1919. #define X_GLrop_Color4ubv                   19
  1920. #define X_GLrop_Color4uiv                   20
  1921. #define X_GLrop_Color4usv                   21
  1922. #define X_GLrop_EdgeFlagv                   22
  1923. #define X_GLrop_End                         23
  1924. #define X_GLrop_Indexdv                     24
  1925. #define X_GLrop_Indexfv                     25
  1926. #define X_GLrop_Indexiv                     26
  1927. #define X_GLrop_Indexsv                     27
  1928. #define X_GLrop_Normal3bv                   28
  1929. #define X_GLrop_Normal3dv                   29
  1930. #define X_GLrop_Normal3fv                   30
  1931. #define X_GLrop_Normal3iv                   31
  1932. #define X_GLrop_Normal3sv                   32
  1933. #define X_GLrop_RasterPos2dv                33
  1934. #define X_GLrop_RasterPos2fv                34
  1935. #define X_GLrop_RasterPos2iv                35
  1936. #define X_GLrop_RasterPos2sv                36
  1937. #define X_GLrop_RasterPos3dv                37
  1938. #define X_GLrop_RasterPos3fv                38
  1939. #define X_GLrop_RasterPos3iv                39
  1940. #define X_GLrop_RasterPos3sv                40
  1941. #define X_GLrop_RasterPos4dv                41
  1942. #define X_GLrop_RasterPos4fv                42
  1943. #define X_GLrop_RasterPos4iv                43
  1944. #define X_GLrop_RasterPos4sv                44
  1945. #define X_GLrop_Rectdv                      45
  1946. #define X_GLrop_Rectfv                      46
  1947. #define X_GLrop_Rectiv                      47
  1948. #define X_GLrop_Rectsv                      48
  1949. #define X_GLrop_TexCoord1dv                 49
  1950. #define X_GLrop_TexCoord1fv                 50
  1951. #define X_GLrop_TexCoord1iv                 51
  1952. #define X_GLrop_TexCoord1sv                 52
  1953. #define X_GLrop_TexCoord2dv                 53
  1954. #define X_GLrop_TexCoord2fv                 54
  1955. #define X_GLrop_TexCoord2iv                 55
  1956. #define X_GLrop_TexCoord2sv                 56
  1957. #define X_GLrop_TexCoord3dv                 57
  1958. #define X_GLrop_TexCoord3fv                 58
  1959. #define X_GLrop_TexCoord3iv                 59
  1960. #define X_GLrop_TexCoord3sv                 60
  1961. #define X_GLrop_TexCoord4dv                 61
  1962. #define X_GLrop_TexCoord4fv                 62
  1963. #define X_GLrop_TexCoord4iv                 63
  1964. #define X_GLrop_TexCoord4sv                 64
  1965. #define X_GLrop_Vertex2dv                   65
  1966. #define X_GLrop_Vertex2fv                   66
  1967. #define X_GLrop_Vertex2iv                   67
  1968. #define X_GLrop_Vertex2sv                   68
  1969. #define X_GLrop_Vertex3dv                   69
  1970. #define X_GLrop_Vertex3fv                   70
  1971. #define X_GLrop_Vertex3iv                   71
  1972. #define X_GLrop_Vertex3sv                   72
  1973. #define X_GLrop_Vertex4dv                   73
  1974. #define X_GLrop_Vertex4fv                   74
  1975. #define X_GLrop_Vertex4iv                   75
  1976. #define X_GLrop_Vertex4sv                   76
  1977. #define X_GLrop_ClipPlane                   77
  1978. #define X_GLrop_ColorMaterial               78
  1979. #define X_GLrop_CullFace                    79
  1980. #define X_GLrop_Fogf                        80
  1981. #define X_GLrop_Fogfv                       81
  1982. #define X_GLrop_Fogi                        82
  1983. #define X_GLrop_Fogiv                       83
  1984. #define X_GLrop_FrontFace                   84
  1985. #define X_GLrop_Hint                        85
  1986. #define X_GLrop_Lightf                      86
  1987. #define X_GLrop_Lightfv                     87
  1988. #define X_GLrop_Lighti                      88
  1989. #define X_GLrop_Lightiv                     89
  1990. #define X_GLrop_LightModelf                 90
  1991. #define X_GLrop_LightModelfv                91
  1992. #define X_GLrop_LightModeli                 92
  1993. #define X_GLrop_LightModeliv                93
  1994. #define X_GLrop_LineStipple                 94
  1995. #define X_GLrop_LineWidth                   95
  1996. #define X_GLrop_Materialf                   96
  1997. #define X_GLrop_Materialfv                  97
  1998. #define X_GLrop_Materiali                   98
  1999. #define X_GLrop_Materialiv                  99
  2000. #define X_GLrop_PointSize                  100
  2001. #define X_GLrop_PolygonMode                101
  2002. #define X_GLrop_PolygonStipple             102
  2003. #define X_GLrop_Scissor                    103
  2004. #define X_GLrop_ShadeModel                 104
  2005. #define X_GLrop_TexParameterf              105
  2006. #define X_GLrop_TexParameterfv             106
  2007. #define X_GLrop_TexParameteri              107
  2008. #define X_GLrop_TexParameteriv             108
  2009. #define X_GLrop_TexImage1D                 109
  2010. #define X_GLrop_TexImage2D                 110
  2011. #define X_GLrop_TexEnvf                    111
  2012. #define X_GLrop_TexEnvfv                   112
  2013. #define X_GLrop_TexEnvi                    113
  2014. #define X_GLrop_TexEnviv                   114
  2015. #define X_GLrop_TexGend                    115
  2016. #define X_GLrop_TexGendv                   116
  2017. #define X_GLrop_TexGenf                    117
  2018. #define X_GLrop_TexGenfv                   118
  2019. #define X_GLrop_TexGeni                    119
  2020. #define X_GLrop_TexGeniv                   120
  2021. #define X_GLrop_InitNames                  121
  2022. #define X_GLrop_LoadName                   122
  2023. #define X_GLrop_PassThrough                123
  2024. #define X_GLrop_PopName                    124
  2025. #define X_GLrop_PushName                   125
  2026. #define X_GLrop_DrawBuffer                 126
  2027. #define X_GLrop_Clear                      127
  2028. #define X_GLrop_ClearAccum                 128
  2029. #define X_GLrop_ClearIndex                 129
  2030. #define X_GLrop_ClearColor                 130
  2031. #define X_GLrop_ClearStencil               131
  2032. #define X_GLrop_ClearDepth                 132
  2033. #define X_GLrop_StencilMask                133
  2034. #define X_GLrop_ColorMask                  134
  2035. #define X_GLrop_DepthMask                  135
  2036. #define X_GLrop_IndexMask                  136
  2037. #define X_GLrop_Accum                      137
  2038. #define X_GLrop_Disable                    138
  2039. #define X_GLrop_Enable                     139
  2040. #define X_GLrop_PopAttrib                  141
  2041. #define X_GLrop_PushAttrib                 142
  2042. #define X_GLrop_Map1d                      143
  2043. #define X_GLrop_Map1f                      144
  2044. #define X_GLrop_Map2d                      145
  2045. #define X_GLrop_Map2f                      146
  2046. #define X_GLrop_MapGrid1d                  147
  2047. #define X_GLrop_MapGrid1f                  148
  2048. #define X_GLrop_MapGrid2d                  149
  2049. #define X_GLrop_MapGrid2f                  150
  2050. #define X_GLrop_EvalCoord1dv               151
  2051. #define X_GLrop_EvalCoord1fv               152
  2052. #define X_GLrop_EvalCoord2dv               153
  2053. #define X_GLrop_EvalCoord2fv               154
  2054. #define X_GLrop_EvalMesh1                  155
  2055. #define X_GLrop_EvalPoint1                 156
  2056. #define X_GLrop_EvalMesh2                  157
  2057. #define X_GLrop_EvalPoint2                 158
  2058. #define X_GLrop_AlphaFunc                  159
  2059. #define X_GLrop_BlendFunc                  160
  2060. #define X_GLrop_LogicOp                    161
  2061. #define X_GLrop_StencilFunc                162
  2062. #define X_GLrop_StencilOp                  163
  2063. #define X_GLrop_DepthFunc                  164
  2064. #define X_GLrop_PixelZoom                  165
  2065. #define X_GLrop_PixelTransferf             166
  2066. #define X_GLrop_PixelTransferi             167
  2067. #define X_GLrop_PixelMapfv                 168
  2068. #define X_GLrop_PixelMapuiv                169
  2069. #define X_GLrop_PixelMapusv                170
  2070. #define X_GLrop_ReadBuffer                 171
  2071. #define X_GLrop_CopyPixels                 172
  2072. #define X_GLrop_DrawPixels                 173
  2073. #define X_GLrop_DepthRange                 174
  2074. #define X_GLrop_Frustum                    175
  2075. #define X_GLrop_LoadIdentity               176
  2076. #define X_GLrop_LoadMatrixf                177
  2077. #define X_GLrop_LoadMatrixd                178
  2078. #define X_GLrop_MatrixMode                 179
  2079. #define X_GLrop_MultMatrixf                180
  2080. #define X_GLrop_MultMatrixd                181
  2081. #define X_GLrop_Ortho                      182
  2082. #define X_GLrop_PopMatrix                  183
  2083. #define X_GLrop_PushMatrix                 184
  2084. #define X_GLrop_Rotated                    185
  2085. #define X_GLrop_Rotatef                    186
  2086. #define X_GLrop_Scaled                     187
  2087. #define X_GLrop_Scalef                     188
  2088. #define X_GLrop_Translated                 189
  2089. #define X_GLrop_Translatef                 190
  2090. #define X_GLrop_Viewport                   191
  2091. #define X_GLrop_DrawArrays                 193
  2092. #define X_GLrop_PolygonOffset              192
  2093. #define X_GLrop_CopyTexImage1D             4119
  2094. #define X_GLrop_CopyTexImage2D             4120
  2095. #define X_GLrop_CopyTexSubImage1D          4121
  2096. #define X_GLrop_CopyTexSubImage2D          4122
  2097. #define X_GLrop_TexSubImage1D              4099
  2098. #define X_GLrop_TexSubImage2D              4100
  2099. #define X_GLrop_BindTexture                4117
  2100. #define X_GLrop_PrioritizeTextures         4118
  2101. #define X_GLrop_Indexubv                   194
  2102. #define X_GLrop_BlendColor                 4096
  2103. #define X_GLrop_BlendEquation              4097
  2104. #define X_GLrop_ColorTable                 2053
  2105. #define X_GLrop_ColorTableParameterfv      2054
  2106. #define X_GLrop_ColorTableParameteriv      2055
  2107. #define X_GLrop_CopyColorTable             2056
  2108. #define X_GLrop_ColorSubTable              195
  2109. #define X_GLrop_CopyColorSubTable          196
  2110. #define X_GLrop_ConvolutionFilter1D        4101
  2111. #define X_GLrop_ConvolutionFilter2D        4102
  2112. #define X_GLrop_ConvolutionParameterf      4103
  2113. #define X_GLrop_ConvolutionParameterfv     4104
  2114. #define X_GLrop_ConvolutionParameteri      4105
  2115. #define X_GLrop_ConvolutionParameteriv     4106
  2116. #define X_GLrop_CopyConvolutionFilter1D    4107
  2117. #define X_GLrop_CopyConvolutionFilter2D    4108
  2118. #define X_GLrop_SeparableFilter2D          4109
  2119. #define X_GLrop_Histogram                  4110
  2120. #define X_GLrop_Minmax                     4111
  2121. #define X_GLrop_ResetHistogram             4112
  2122. #define X_GLrop_ResetMinmax                4113
  2123. #define X_GLrop_TexImage3D                 4114
  2124. #define X_GLrop_TexSubImage3D              4115
  2125. #define X_GLrop_CopyTexSubImage3D          4123
  2126. #define X_GLrop_DrawArraysEXT              4116
  2127.  
  2128. /* Added for core GL version 1.3 */
  2129.  
  2130. #define X_GLrop_ActiveTextureARB            197
  2131. #define X_GLrop_MultiTexCoord1dvARB         198
  2132. #define X_GLrop_MultiTexCoord1fvARB         199
  2133. #define X_GLrop_MultiTexCoord1ivARB         200
  2134. #define X_GLrop_MultiTexCoord1svARB         201
  2135. #define X_GLrop_MultiTexCoord2dvARB         202
  2136. #define X_GLrop_MultiTexCoord2fvARB         203
  2137. #define X_GLrop_MultiTexCoord2ivARB         204
  2138. #define X_GLrop_MultiTexCoord2svARB         205
  2139. #define X_GLrop_MultiTexCoord3dvARB         206
  2140. #define X_GLrop_MultiTexCoord3fvARB         207
  2141. #define X_GLrop_MultiTexCoord3ivARB         208
  2142. #define X_GLrop_MultiTexCoord3svARB         209
  2143. #define X_GLrop_MultiTexCoord4dvARB         210
  2144. #define X_GLrop_MultiTexCoord4fvARB         211
  2145. #define X_GLrop_MultiTexCoord4ivARB         212
  2146. #define X_GLrop_MultiTexCoord4svARB         213
  2147. #define X_GLrop_CompressedTexImage1D        214
  2148. #define X_GLrop_CompressedTexImage2D        215
  2149. #define X_GLrop_CompressedTexImage3D        216
  2150. #define X_GLrop_CompressedTexSubImage1D     217
  2151. #define X_GLrop_CompressedTexSubImage2D     218
  2152. #define X_GLrop_CompressedTexSubImage3D     219
  2153. #define X_GLrop_SampleCoverageARB           229
  2154.  
  2155. /* Added for core GL version 1.4 */
  2156.  
  2157. #define X_GLrop_WindowPos3fARB              230
  2158. #define X_GLrop_FogCoordfv                  4124
  2159. #define X_GLrop_FogCoorddv                  4125
  2160. #define X_GLrop_PointParameterfARB          2065
  2161. #define X_GLrop_PointParameterfvARB         2066
  2162. #define X_GLrop_SecondaryColor3bv           4126
  2163. #define X_GLrop_SecondaryColor3sv           4127
  2164. #define X_GLrop_SecondaryColor3iv           4128
  2165. #define X_GLrop_SecondaryColor3fv           4129
  2166. #define X_GLrop_SecondaryColor3dv           4130
  2167. #define X_GLrop_SecondaryColor3ubv          4131
  2168. #define X_GLrop_SecondaryColor3usv          4132
  2169. #define X_GLrop_SecondaryColor3uiv          4133
  2170. #define X_GLrop_BlendFuncSeparate           4134
  2171. #define X_GLrop_PointParameteri             4221
  2172. #define X_GLrop_PointParameteriv            4222
  2173.  
  2174. /* Added for core GL version 1.5 */
  2175. /* XXX opcodes not defined in the spec */
  2176.  
  2177. /* Opcodes for Vendor Private commands */
  2178.  
  2179.  
  2180. #define X_GLvop_GetConvolutionFilterEXT        1
  2181. #define X_GLvop_GetConvolutionParameterfvEXT   2
  2182. #define X_GLvop_GetConvolutionParameterivEXT   3
  2183. #define X_GLvop_GetSeparableFilterEXT          4
  2184. #define X_GLvop_GetHistogramEXT                5
  2185. #define X_GLvop_GetHistogramParameterfvEXT     6
  2186. #define X_GLvop_GetHistogramParameterivEXT     7
  2187. #define X_GLvop_GetMinmaxEXT                   8
  2188. #define X_GLvop_GetMinmaxParameterfvEXT        9
  2189. #define X_GLvop_GetMinmaxParameterivEXT        10
  2190. #define X_GLvop_AreTexturesResidentEXT         11
  2191. #define X_GLvop_DeleteTexturesEXT              12
  2192. #define X_GLvop_GenTexturesEXT                 13
  2193. #define X_GLvop_IsTextureEXT                   14
  2194. #define X_GLvop_GetCombinerInputParameterfvNV  1270
  2195. #define X_GLvop_GetCombinerInputParameterivNV  1271
  2196. #define X_GLvop_GetCombinerOutputParameterfvNV 1272
  2197. #define X_GLvop_GetCombinerOutputParameterivNV 1273
  2198. #define X_GLvop_GetFinalCombinerOutputParameterfvNV 1274
  2199. #define X_GLvop_GetFinalCombinerOutputParameterivNV 1275
  2200. #define X_GLvop_DeleteFenceNV                  1276
  2201. #define X_GLvop_GenFencesNV                    1277
  2202. #define X_GLvop_IsFenceNV                      1278
  2203. #define X_GLvop_TestFenceNV                    1279
  2204. #define X_GLvop_GetFenceivNV                   1280
  2205. #define X_GLvop_AreProgramsResidentNV          1293
  2206. #define X_GLvop_DeleteProgramARB               1294
  2207. #define X_GLvop_GenProgramsARB                 1295
  2208. #define X_GLvop_GetProgramEnvParameterfvARB    1296
  2209. #define X_GLvop_GetProgramEnvParameterdvARB    1297
  2210. #define X_GLvop_GetProgramEnvParameterivNV     1298
  2211. #define X_GLvop_GetProgramStringNV             1299
  2212. #define X_GLvop_GetTrackMatrixivNV             1300
  2213. #define X_GLvop_GetVetrexAttribdvARB           1301
  2214. #define X_GLvop_GetVetrexAttribfvARB           1302
  2215. #define X_GLvop_GetVetrexAttribivARB           1303
  2216. #define X_GLvop_IsProgramARB                   1304
  2217. #define X_GLvop_GetProgramLocalParameterfvARB  1305
  2218. #define X_GLvop_GetProgramLocalParameterdvARB  1306
  2219. #define X_GLvop_GetProgramivARB                1307
  2220. #define X_GLvop_GetProgramStringARB            1308
  2221. #define X_GLvop_GetProgramNamedParameter4fvNV  1310
  2222. #define X_GLvop_GetProgramNamedParameter4dvNV  1311
  2223. #define X_GLvop_SampleMaskSGIS                 2048
  2224. #define X_GLvop_SamplePatternSGIS              2049
  2225. #define X_GLvop_GetDetailTexFuncSGIS           4096
  2226. #define X_GLvop_GetSharpenTexFuncSGIS          4097
  2227. #define X_GLvop_GetColorTableSGI               4098
  2228. #define X_GLvop_GetColorTableParameterfvSGI    4099
  2229. #define X_GLvop_GetColorTableParameterivSGI    4100
  2230. #define X_GLvop_GetTexFilterFuncSGIS           4101
  2231. #define X_GLvop_GetInstrumentsSGIX             4102
  2232. #define X_GLvop_InstrumentsBufferSGIX          4103
  2233. #define X_GLvop_PollInstrumentsSGIX            4104
  2234. #define X_GLvop_FlushRasterSGIX                4105
  2235.  
  2236. /* Opcodes for GLX vendor private commands */
  2237.  
  2238. #define X_GLXvop_QueryContextInfoEXT            1024
  2239. #define X_GLXvop_SwapIntervalSGI                65536
  2240. #define X_GLXvop_MakeCurrentReadSGI             65537
  2241. #define X_GLXvop_CreateGLXVideoSourceSGIX       65538
  2242. #define X_GLXvop_DestroyGLXVideoSourceSGIX      65539
  2243. #define X_GLXvop_GetFBConfigsSGIX               65540
  2244. #define X_GLXvop_CreateContextWithConfigSGIX    65541
  2245. #define X_GLXvop_CreateGLXPixmapWithConfigSGIX  65542
  2246. #define X_GLXvop_CreateGLXPbufferSGIX           65543
  2247. #define X_GLXvop_DestroyGLXPbufferSGIX          65544
  2248. #define X_GLXvop_ChangeDrawableAttributesSGIX   65545
  2249. #define X_GLXvop_GetDrawableAttributesSGIX      65546
  2250. #define X_GLXvop_JoinSwapGroupSGIX              65547
  2251. #define X_GLXvop_BindSwapBarrierSGIX            65548
  2252. #define X_GLXvop_QueryMaxSwapBarriersSGIX       65549
  2253. #define X_GLXvop_QueryHyperpipeNetworkSGIX      65550
  2254. #define X_GLXvop_QueryHyperpipeConfigSGIX       65551
  2255. #define X_GLXvop_HyperpipeConfigSGIX            65552
  2256. #define X_GLXvop_DestroyHyperpipeConfigSGIX     65553
  2257.  
  2258.  
  2259. /* ARB extension opcodes */
  2260.  
  2261. /*  1. GL_ARB_multitexture - see GL 1.2 opcodes */
  2262. /*  5. GL_ARB_multisample - see GL 1.3 opcodes */
  2263. /* 12. GL_ARB_texture_compression - see GL 1.3 opcodes */
  2264. /* 14. GL_ARB_point_parameters - see GL 1.4 opcodees */
  2265.  
  2266. /* 15. GL_ARB_vertex_blend */
  2267. #define X_GLrop_WeightbvARB                  220
  2268. #define X_GLrop_WeightubvARB                 221
  2269. #define X_GLrop_WeightsvARB                  222
  2270. #define X_GLrop_WeightusvARB                 223
  2271. #define X_GLrop_WeightivARB                  224
  2272. #define X_GLrop_WeightuivARB                 225
  2273. #define X_GLrop_VertexBlendARB               226
  2274. #define X_GLrop_WeightfvARB                  227
  2275. #define X_GLrop_WeightdvARB                  228
  2276.  
  2277. /* 16. GL_ARB_matrix_palette */
  2278. /* XXX opcodes not defined in the spec */
  2279.  
  2280. /* 25. GL_ARB_window_pos - see GL 1.4 opcodes */
  2281.  
  2282. /* 26. GL_ARB_vertex_program */
  2283. #define X_GLrop_BindProgramARB              4180
  2284. #define X_GLrop_ProgramEnvParameter4fvARB   4184
  2285. #define X_GLrop_ProgramEnvParameter4dvARB   4185
  2286. #define X_GLrop_VertexAttrib1svARB          4189
  2287. #define X_GLrop_VertexAttrib2svARB          4190
  2288. #define X_GLrop_VertexAttrib3svARB          4191
  2289. #define X_GLrop_VertexAttrib4svARB          4192
  2290. #define X_GLrop_VertexAttrib1fvARB          4193
  2291. #define X_GLrop_VertexAttrib2fvARB          4194
  2292. #define X_GLrop_VertexAttrib3fvARB          4195
  2293. #define X_GLrop_VertexAttrib4fvARB          4196
  2294. #define X_GLrop_VertexAttrib1dvARB          4197
  2295. #define X_GLrop_VertexAttrib2dvARB          4198
  2296. #define X_GLrop_VertexAttrib3dvARB          4199
  2297. #define X_GLrop_ProgramLocalParameter4fvARB 4215
  2298. #define X_GLrop_ProgramLocalParameter4dvARB 4216
  2299. #define X_GLrop_ProgramStringARB            4217
  2300. #define X_GLrop_VertexAttrib4dvARB          4200
  2301. #define X_GLrop_VertexAttrib4NubvARB        4201
  2302. #define X_GLrop_VertexAttrib4bvARB          4230
  2303. #define X_GLrop_VertexAttrib4ivARB          4231
  2304. #define X_GLrop_VertexAttrib4ubvARB         4232
  2305. #define X_GLrop_VertexAttrib4usvARB         4233
  2306. #define X_GLrop_VertexAttrib4uivARB         4234
  2307. #define X_GLrop_VertexAttrib4NbvARB         4235
  2308. #define X_GLrop_VertexAttrib4NsvARB         4236
  2309. #define X_GLrop_VertexAttrib4NivARB         4237
  2310. #define X_GLrop_VertexAttrib4NusvARB        4238
  2311. #define X_GLrop_VertexAttrib4NuivARB        4239
  2312.  
  2313. /* 27. GL_ARB_fragment_program - see GL_ARB_vertex_program opcodes */
  2314.  
  2315. /* 29. GL_ARB_occlusion_query */
  2316. /* XXX opcodes not defined in the spec */
  2317.  
  2318.  
  2319. /* New extension opcodes */
  2320.  
  2321. /* 145. GL_EXT_secondary_color - see GL 1.4 opcodes */
  2322.  
  2323. /* 188. GL_EXT_vertex_weighting */
  2324. #define X_GLrop_VertexWeightfvEXT           4135
  2325.  
  2326. /* 191. GL_NV_register_combiners */
  2327. #define X_GLrop_CombinerParameterfNV        4136
  2328. #define X_GLrop_CombinerParameterfvNV       4137
  2329. #define X_GLrop_CombinerParameteriNV        4138
  2330. #define X_GLrop_CombinerParameterivNV       4139
  2331. #define X_GLrop_CombinerInputNV             4140
  2332. #define X_GLrop_CombinerOutputNV            4141
  2333. #define X_GLrop_FinalCombinerInputNV        4142
  2334.  
  2335. /* 222. GL_NV_fence */
  2336. #define X_GLrop_SetFenceNV                  4143
  2337. #define X_GLrop_FinishFenceNV               4144
  2338.  
  2339. /* 227. GL_NV_register_combiners2 */
  2340. /* XXX opcodes not defined in the spec */
  2341.  
  2342. /* 233. GL_NV_vertex_program - see also GL_ARB_vertex_program opcodes */
  2343. #define X_GLrop_ExecuteProgramNV            4181
  2344. #define X_GLrop_RequestResidentProgramsNV   4182
  2345. #define X_GLrop_LoadProgamNV                4183
  2346. #define X_GLrop_ProgramParameters4fvNV      4186
  2347. #define X_GLrop_ProgramParameters4dvNV      4187
  2348. #define X_GLrop_TrackMatrixNV               4188
  2349. #define X_GLrop_VertexAttribs1svNV          4202
  2350. #define X_GLrop_VertexAttribs2svNV          4203
  2351. #define X_GLrop_VertexAttribs3svNV          4204
  2352. #define X_GLrop_VertexAttribs4svNV          4205
  2353. #define X_GLrop_VertexAttribs1fvNV          4206
  2354. #define X_GLrop_VertexAttribs2fvNV          4207
  2355. #define X_GLrop_VertexAttribs3fvNV          4208
  2356. #define X_GLrop_VertexAttribs4fvNV          4209
  2357. #define X_GLrop_VertexAttribs1dvNV          4210
  2358. #define X_GLrop_VertexAttribs2dvNV          4211
  2359. #define X_GLrop_VertexAttribs3dvNV          4212
  2360. #define X_GLrop_VertexAttribs4dvNV          4213
  2361. #define X_GLrop_VertexAttribs4ubvNV         4214
  2362.  
  2363. /* 261. GL_NV_occlusion_query */
  2364. /* XXX opcodes not defined in the spec */
  2365.  
  2366. /* 262. GL_NV_point_sprite - see GL 1.4 opcodes */
  2367.  
  2368. /* 268. GL_EXT_stencil_two_side */
  2369. #define X_GLrop_ActiveStencilFaceEXT        4220
  2370.  
  2371. /* 282. GL_NV_fragment_program - see also GL_NV_vertex_program and GL_ARB_vertex_program opcodes */
  2372. #define X_GLrop_ProgramNamedParameter4fvNV  4218
  2373. #define X_GLrop_ProgramNamedParameter4dvNV  4219
  2374.  
  2375. /* 285. GL_NV_primitive_restart */
  2376. /* XXX opcodes not defined in the spec */
  2377.  
  2378. /* 297. GL_EXT_depth_bounds_test */
  2379. #define X_GLrop_DepthBoundsEXT              4229
  2380.  
  2381. /* 299. GL_EXT_blend_equation_separate */
  2382. #define X_GLrop_BlendEquationSeparateEXT    4228
  2383.  
  2384. #endif /* _GLX_glxproto_h_ */
  2385.